第二讲 指令系统体系结构(Instruction Set Architecture)

内容要点:x86 ISA,MIPS ISA

构造一台自己的计算机


  • 指令格式
第一个字节 第二个字节
xxxx xxxx xxxx xxxx
操作码 寄存器号 存储单元地址

X86体系结构与指令简介


X86体系结构

  • Intel 8086 (1978年)

    • 内部的通用寄存器为16位,即既能处理16位数据,也能处理8位数据

    • 对外有16根数据线和20根地址线,可寻址的内存空间为1MByte(2^{20}

    • 物理地址的形成采用”段加偏移“的方式

      <- 控制总线->
      CPU <-地址总线 20-bit-> 存储器
      <-数据总线 16bit->
    • 通用寄存器R_0,...,R_n

      • 数据寄存器AX,BX,CX,DX:均为16位寄存器,每个都可分为两个8位寄存器,适用大多数算术运算和逻辑运算指令
    • 标志寄存器FLAGS(标志位两大类)

      • 状态标志:反映CPU的工作状态,如执行加法运算时是否产生进位
      • 控制标志:对CPI的运行起特定控制作用
    • 指令指针寄存器IP

      • 保存一个内存地址,指向当前需要取出的指令
      • 当CPU从内存中取出一个指令后,IP会自动增加,指向下一指令地址
      • IP寄存器的寻址能力2^{16}=65536(64K)Byte,8086对外有20位地址线,寻址范围:2^{20}=1MByte
    • 段寄存器Segment Register

      • 与其他寄存器联合生成存储器地址

      • CS 代码段寄存器(Code Segment)
        DS 数据段寄存器(Data Segment)
        ES 附加段寄存器(Extra Segment)
        SS 堆栈段寄存器(Stack Segment)
  • IA-32体系结构

    • Intel 80386 (1985年)

      • 主频12.5-33MHz,27.5万个晶体管

      • 80X86系列中的第一款32位微处理器

      • 支持32位的算术和逻辑运算,提供32位的通用寄存器

      • 地址总线扩展到32位,可寻址4GB的内存空间

      • 实模式-保护模式-虚拟8086模式

  • X86-64体系结构

X86指令简介

  • 指令的主要类别

    • 运算类指令:如加、减、乘、除、与、或、非等
      • ADD指令(加)
        • 格式:ADD DST,SRC
        • 操作:DST<-DST+SRC
      • ADC指令(带进位的加)
        • 格式:ADC DST,SRC
        • 操作:DST<-DST+SRC+CF
      • INC指令(加1)
        • 格式:INC OPR
        • 操作:OPR<-OPR+1
    • 传送类指令:如从存储器到通用寄存器,从通用寄存器到I/O接口等
      • 作用:把数据或地址传送到寄存器或存储器单元中
      • MOV指令(传送)
        • 格式:MOV DST,SRC
        • 操作:DST<-SRC
        • 说明:DST表示目的操作数,SRC表示源操作数,MOV指令把一个操作数从源传送至目的,源操作数保持不变
    • 控制类指令:如暂停处理器,清除标志位等
      • 作用:控制CPU的功能,对标志位进行操作
    • 转移类指令:如无条件转移,条件转移,过程调用等
      • 作用:改变指令执行顺序
      • 说明:根据是否有判断条件,分为「无条件转移指令」和「条件专业」指令;根据转移目标地址的提供方式,可分为「直接转移」和「间接转移」
  • 指令的运行结果

    • 改变通用寄存器的内容:如ADD AX,DX

    • 改变存储单元的内容:如MOV [10H],CX

    • 改变标志位:如产生进位

    • 改变指令指针:如 JMP [BX]

    • 改变外设端口的内容:如访问显示端口

    • 其他...

MIPS体系结构


  • 全称:Microprocessor without Interlocked Piped Stages

    • 主要关注点

      • 减少指令的类型
      • 降低指令复杂度
    • 基本原则:A simpler CPU is a faster CPU

    • MIPS指令主要特点

      • 固定的指令长度

      • 简单的寻址模式

      • 指令数量少,指令功能简单(一条指令只完成一个操作)

      • 只有Load和Store指令可以访问存储器

      • 需要优秀的编译器支持

  • MIPS指令简介

    • 基本格式:

      • R:Register,寄存器

      • I:Immediate,立即数

      • J:Jump,无条件转移

运算指令 add rd, rs, rt sll rd, rt, shamt addi rt, rs, imm slti rt, rs, imm /
访存指令 / lw rt, imm(rs) sw rt, imm(rs) /
分支指令 jr rs beq rs,rt, imm j addr
R型指令 I型指令 J型指令

Quiz [1]


  1. 下列关于CISC和RISC的描述错误的是?

    A、CISC指令长度是不固定的

    B、CISC指令的操作数必须预存于寄存器中

    C、RISC指令长度是固定的

    D、RISC指令的操作数必须预存于寄存器中

    E、RISC架构的指令种类通常比CISC架构更少

    RISC:Reduced Instruction Set Computer,精简指令系统计算机
    减少指令的类型,降低指令复杂度
    CISC:Complex Instruction Set Computer,复杂指令系统计算机

  2. 下列关于Intel处理器及其推出时间描述错误的是?

    A、Intel 8086——1978年

    B、Intel 80286——1982年

    C、Intel 80386——1988年

    D、Intel Pentium——1993年

    E、Intel PentiumPro——1995年

    F、Intel Core i7——2008年

    G、Intel Core 2——2006年

    Intel 80386——1985

  3. x86体系结构中,寄存器EAX长度为多少位? 32位

    x86体系结构中,寄存器AX长度为多少位? 16位

  4. IA-32寄存器模型中包括以下哪些寄存器?(多选题)

    A、通用寄存器

    B、指令指针寄存器

    C、页面寄存器

    D、标志寄存器

    E、段寄存器

  5. 8086系统中标志位CF的含义是? Carry Flag

    8086系统中标志位ZF的含义是? 零标志(Zero Flag)

    8086系统中段寄存器DS的含义是?数据段寄存器(Data Segment)

    8086系统中段寄存器CS的含义是?代码段寄存器(Code Segment)

    ES:附加段寄存器(Extra Segment)

    SS:堆栈段寄存器(Stack Segmeny)

  6. 设CS=2500H,DS=2400H,SS=2430H,BP=0200H,SI=0010H,DI=0206H,计算下列x86指令源操作数的物理地址MOV AX,[2000H] *26000H*

    物理地址 = DS:2000H = 2400H16(左移4位)+2000H = 24000H + 2000H = 26000H
    CS(CodeSegment):存放当前正在运行的程序代码所在段的段基址
    16 + IP存放的偏移量 = 指令的物理地址。

    设CS=2500H,DS=2400H,SS=2430H,BP=0200H,SI=0010H,DI=0206H,计算下列x86指令源操作数的物理地址:MOV AX,[BP+SI+4] *24514H*

    2430H * 16 + 0200H + 0010H + 4H = 24300H + 0214H = 24514H

    设CS=2500H,DS=2400H,SS=2430H,BP=0200H,SI=0010H,DI=0206H,计算下列x86指令源操作数的物理地址:MOV AX,[DI+100H] *24306H*

    2400H * 16 +0206H +100H = 24000H +0306H = 24306H

  7. 下列x86指令中,哪些属于算术运算指令?

    A、ADD

    B、DEC

    C、MOV

    D、IN

    E、LEA:Load Effective Address

    I、CALL:调用子程序

    J、JNZ:条件转移指令

    K、LOOP

    L、MUL:无符号乘法

  8. 下列关于MIPS指令的主要特点说法错误的是?

    A、指令长度固定

    B、寻址模式简单

    C、只有Load和Store指令可以访问存储器

    D、需要优秀的编译器支持

    E、指令数量多,且功能复杂

  9. MIPS按照指令的基本格式可以分为三种类型,以下不属于这三种类型的是?

    A、R型指令

    B、I型指令

    C、J型指令

    D、O型指令

  10. 某MIPS指令的机器码是0x20A5FFFF,对应的汇编指令是什么? *addi $a1,$a1,-1*

    二进制数均以补码的形式存放在计算机中

    正数:补码 = 原码

    负数:补码 = 除符号位,原码剩余每位取反,末位+1

    FFFF= 1111 1111 1111 1111 为补码形式,化为原码

    1111 1111 1111 1110

    1000 0000 0000 0001 = -1

    0010(2) 0000(0) 1010(A) 0101(5) 1111 1111 1111 1111(FFFF) =>可知为I型

    001000(op = 8 = addi) 00101(rs = 5 = a1) 00101(rt = 5 =a1) 1111 1111 1111 1111(immediate = -1)

    某MIPS指令的机器码是0x0005402A,对应的汇编指令是什么? *slt $t0,$0,$a1*

    0000 0000 0000 0101(5) 0100(4) 0000 0010(2) 1010(A)

    000000(R型指令) 00000(rs = 0 = 0) 00101(rt = 5 =a1) 01000(rd = 8 = $t0) 00000 101010(可知指令类型为slt )

  11. 阅读下面的x86汇编程序,回答问题。

    设DS=1000H

    MOV SI, 1250H

    MOV DI, 1370H

    MOV CL, 3

    MOV AX, DS

    MOV ES, AX

    MOV BX, 5

    STD

    REP MOVSB

    请问,在这次串传送操作中,完成了第一个元素的传送后,SI寄存器的值是什么? **124FH*

    STD(DF置为1,从源串的高位开始传送)

    源串地址:DS:SI = 1000H * 16 + 1250H = 11250H

    因为是从高位开始传送,传送完一个元素后,SI与DI自动减1

    11250H = 112 0101 0000 (不够减向前借2)- 0001 = 112 4 F

    阅读下面的x86汇编程序,回答问题。

    设DS=1000H

    MOV SI, 1250H

    MOV DI, 1370H

    MOV CL, 3

    MOV AX, DS

    MOV ES, AX

    MOV BX, 5

    CLD

    REP MOVSB

    请问,这次串传送操作,总共传送了多少个字节的数据? 不确定

  12. 如果想用8086 CPU把内存中某个区域的1024个字节的数据传送到另一个区域,可以选用如下三种方法:

    (1)只使用传送指令(MOV);

    (2)使用传送指令(MOV),并用条件转移指令建立循环语句的结构;

    (3)使用串传送指令(MOVSB)以及必要的配合指令,不使用循环语句的结构。

    请比较用这三种方法编写的程序,执行时访问存储器次数最少的是:方法三

    请比较用这三种方法编写的程序,执行时访问存储器次数最多的是:方法二

    请比较用这三种方法编写的程序,程序代码占用存储器空间最大的是:方法一

  13. 很多x86指令的功能比较复杂,往往一条x86指令可以完成的功能,需要多条MIPS指令才能实现。请问下列x86指令中,哪些确定能够只用一条MIPS指令完成对应的功能?(注:只需考虑这条指令本身,不用考虑对后续指令的影响)

    A、ADD ECX, 15H

    B、MOV EAX, 28H

    C、ADD EDX, EBX

    D、ADD EAX, [13H]

    E、MOV EDX, [EBX+11H]

    F、ADD [EBX+ESI*4+200H], EAX

    G、REP MOVSB

    H、JZ LOOP_1

    D/E/F (访寸需要额外的指令)


  1. 引用自本文链接:https://blog.csdn.net/wydyd110/article/details/81382073

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 计算机通过执行指令序列来使机器得以工作,所以对于每一系列的计算机都有指定的一组指令集供计算机使用,这组指令...
    未来科技工作室阅读 7,862评论 1 10
  • 指令系统 程序功能:求两个数据之和并输出 运行结果:sum is 25 基本概念: 指令:是计算机硬件能够直接理解...
    我可能是个假开发阅读 4,945评论 0 5
  • 汇编基础教程 16位和32位的80x86汇编语言的区别 需要注意的是汇编不是一种语言,不同平台有不同的汇编语言对应...
    inwunwe阅读 9,472评论 2 19
  • 我们在学习逆向开发之前,我们要了解一个基本的逆向原理.首先我们是逆向iOS系统上面的APP.那么我们知道,一个AP...
    Colin_狂奔的蚂蚁阅读 1,837评论 4 20
  • 对生活的描述千奇百怪,各执一词。 而我恰恰有“道理厌恶症”,讨厌哲理小品,因为它很虚伪。 但你又要问我:“什么不虚...
    我是一只来自南方的狼阅读 181评论 0 1