当前位置:文档之家› 微机原理指令

微机原理指令

微机原理指令
微机原理指令

类别指

指令名

指令缩写指令功能影响标志格式格式含义源操作数

目的操作

传送指令通

基本传

输指令

MOV

将源操作数中的数据传送至目

的操作数,以实现寄存器与寄

存器、寄存器与存储器之间数

据传送以及立即数送往寄存器

或存储器

WORD PTR [2000],AX

将AX送2000

和2001单元

(低位在低地

址,高位在高

地址,下同)

至少有一个是寄存

器(除立即数送存储

器外);

不能在两个存储单

元之间直接传送数

据;

不能在两个段寄存

器之间直接传送数

据;

不能将立即数直接

送至段寄存器;SS

AX,ES:[BX+SI+50]

将ES段

(BX+SI+50)

字单元内容送

AX

SS,BX

将BX内容送

SS

ES,SS:[DI+200]将SS段

(DI+200)字

单元内容送ES

和SP赋值必须紧邻

指令指针IP既不作

目的操作数也不做

源操作数

BX,CX

将CS内容送

BX

WORD PTR [BX+DI],SS 将SS内容送

(BX+DI)字单

CS不能作

目的操作

数;

立即数不

能作目的

操作数

CL,DH

将DH内容送

CL

DI,[SI+100]将(SI+100)字单元内容送DI

WORD PTR [DI],DX

将DX内容送

(DI)字单元

CX,3330

立即数3330

送CX

BYTE PTR [DI],0

立即数0送

(DI)字节单元堆栈操

作指令PUSH

将来自通用寄存器、段寄存器

或存储单元的一个字(16位)

内容压入堆栈(SP指向的栈顶

个单元)

AX AX内容进栈通用寄存

器、段寄

存器、存

储单元的

一个字

CS不能作

目的操作

数;

SI SI内容进栈

ES ES内容进栈

CS CS内容进栈

WORD PTR [BX]

(BX)和

(BX+1)单元

内容进栈

WORD PTR BETA [BX]

(BX+BETA)字

单元内容进栈不能使用8位源或目的操作数

POP 将栈顶个单元的内容退出(弹

出)到通用寄存器、段寄存器

或存储单元

BX

栈顶2个字节

出栈到BX

不能使用8位源或

目的操作数

DX

栈顶2个字节

出栈到DX

通用寄存

器、段寄

存器、存

储单元的

一个字

节;

CS不能作

ES

栈顶2个字节

出栈到ES

SS

栈顶2个字节

出栈到SS

[BX+50]栈顶2个字节

出栈到(BX+50)字单元目的操作数

[BP+DI]栈顶2个字节出栈到

(BP+DI)字单元

交换指

令XCHG

实现数据宽度相同的源操作数

与目的操作数之间的数据交

换,亦即同为8位或16位的累

加器与寄存器、寄存器与寄存

器以及寄存器与存储单元之间

的数据交换

AL,BL

AL与BL之间

字节交换

段寄存器、CS、IP、

立即数不能作为源

或目的操作数;

两个存储单元之间、

段寄存器与段寄存

器之间不能进行交

CX,AX

CX与AX之间

字交换

DH,CL

DH与CL之间

字节交换

BX,CX

BX与CX之间

字交换

BL,[1000]BL与1000单元内容字节交换

WORD PTR [DI],DX (DI)字单元内容与DX字交换

专用

累加器换码指

XLAT

专门使用累加器AL并将其中

的值(比如按二进制、十进制

或十六进制等编码)变换成内

存某一表格区内对应的另一种

编码(比如发光二极管LED的

MOV

BX,TABLE_SEGCODE

XLAT

设置SEGCODE

表首址

对表进行检索

有操作码,无操作

数。

操作数AL隐藏在操

作码之中

字形码或其他通讯码等)输入指

令IN

在I/O口独立编址时,使用专

门的输入指令IN,这种输入操

作又是指定累加器AL或AX来

担当,因此,IN属于专用累加

器传送指令

AL,60H

8位口地址

60H中的1个

字节到AL

不能使用除累加器

外的其他寄存器进

行操作;

不能使用大于255

的地址作为8位口

地址;

不能使用除DX外的

其他寄存器作为16

位间接口地址,且在

间接口寻址时,须对

DX预先置地址值

AX,60H

60H内容到

AL,61H内容

到AH

AL,DX

16位口地址

(DX)单元内

容到AL

AX,DX

(DX)及(DX+1)

口内容到AX

输出指OUT在I/O口独立编址时,使用专无 60H,AL AL中的字节输不能使用除累加器

令门的输出指令OUT,这种输出

操作又是指定累加器AL或AX

来担当,因此,OUT属于专用

累加器传送指令

出到8位口

60H

外的其他寄存器进

行操作;

不能使用大于255

的地址作为8位口

地址;

不能使用除DX外的

其他寄存器作为16

位间接口地址,且在

间接口寻址时,须对

DX预先置地址值

60H,AX

AX中的字输出

到8位口60H

及61H

DX,AL

AL中的字节到

16位口地址

(DX)

DX,AX

AX中的字到

(DX)及

(DX+1)口

地址有效地

址传送

LEA

将存储单元有效(偏移)地址

EA(源操作数)装入一个16

无 SP,[1234H]

直接地址

1234H装入SP

存储器操

作数(存

段寄存

器、IP不

传送指令指令位通用寄存器(目的操作数),

以使该寄存器作为地址指针 BX,TABLE

标号或变量

TABLE代表的

地址装入BX

储单元有

效地址

EA)作源

操作数

能作目的

操作数;

16位通用

寄存器

(BX、BP、

SI及DI)

作目的操

作数

SI,[BX]

间接地址(BX)

装入SI

DI,[BX+100]

基址地址

(BX+100)装

入DI

不能将存储器操作

数与寄存器操作数

在源与目的操作数

的位置上互换(倒

DX,[SI+200]变址地址

(SI+200)装

入DX

置)

AX,[BP+DI+500]基(址)变址地址

(BP+DI+500)装入AX

使用DS 段的地

址指针传送指

令LDS

将双字地址指针(包括偏移地

址和段地址)分别传送到指令

中给出的16位寄存器及数据

段寄存器DS中,双字地址指针

从源操作数的双字内容即(EA)

和(EA+2)字单元得到

BX,[3250H]

由直接地址得

到双字地址指

存储器操

作数(存

储单元有

效地址

(EA)作为

源操作数

16位寄存

REG(BX、

BP、SI及

DI)作为

目的操作

SI,TMP

由标号(符号

地址)的内容

得到双字地址

指针

BP,[BX]由间接地址(BX)的内容得到双字地址指针

DI,[BX+20]由基址地址(BX+20)的内容得到双字地址指针

BX,[DI+40]由变址地址

(DI+40)的内

容得到双字地

址指针

不能将存储器操作

数(存储单元有效地

址EA)与寄存器操

作数在源与目的操

作数的位置上互换

BX,[BP+SI+500]由基(址)变

址地址

(BP+SI+500)

的内容得到双

字地址指针

(倒置)

使用ES

段的地

址指针传送指

令LES

功能与上基本相同,差别在于

能提供偏移地址直接访问和使

用ES段的只有DI,而BX、SI

及BP可通过段超越前缀(ES:)

由默认的DS段或SS段改为访

问ES段

标志传低8位

标志取

入AH指

LAHF

将标志寄存器中低8位FL取入

寄存器AH中(AH<-FL),以便

于阅读和校核

低8位

FL(SF、

ZF、AF、

寄存器AH

送指令

令PF、CF)

存AH到

低8位

标志指

SAHF

将AH内容存到低8位标志寄存

器FL中(FL<-AH),以便于设

置标志状况

影响低8

位标志位

寄存器

AH

低8位

FL(SF、

ZF、AF、

PF、CF)

标志进

栈指令

PUSHF

将16位标志寄存器F(FH、FL)

的内容进栈,SP<-SP-2,F的内

容不变

无16位标

志寄存器

F(FL、FH)

堆栈

标志出

栈指令

POPF

将堆栈栈顶的2个字节弹出送

16位标志寄存器F(FH、FL),

SP<-SP+2,影响标志寄存器的

内容

影响16位

标志位

堆栈栈顶

的2个字

16位标志

寄存器F

(FL、FH)

算加加法指ADD将源操作数与目的操作数的内CF、PF、AF、 DI,SI寄存器SI的源与目的操作数不

术运算类指令法

令容相加,其结果(两者之和)

存放于目的操作数,或者说将

源操作数的内容加到目的操作

数中

ZF、SF及

OF

内容加到DI

能同时为存储器操

作数

CX,[5000]

5000和5001

单元内容加到

CX中

寄存器、

存储器或

立即数

寄存器或

存储器;

不能是立

即数

WORD PTR

[BP+DI+30],DX

寄存器DX的

内容加到

(BP+DI+30)字

单元中

WORD PTR

[SI+100],2040

立即数2040

加到(SI+100)

字单元中

BH,86H立即数86H加

到BH中

AX,FED0H 立即数FED0H 加到累加器AX 中

带进位

的加法指令ADC

功能与上基本相同,唯一不同

之处是,在源操作数与目的操

作数的内容相加时,还要加上

进位位CF的值

CF、PF、AF、

ZF、SF及

OF

与ADD相同与ADD相同

与ADD相

与ADD相

增量(加

1)指令INC

将目的操作数的内容(8位或

16位)加1,源操作数1隐含

在操作码中。目的操作数为寄

存器或存储器,但不能是段寄

存器或立即数

PF、AF、ZF、

SF及OF,

不影响CF

AL

AL中的内容加

1

源操作数

为1

为寄存器

或存储

器;

不能是段

寄存器或

DI

DI中的内容加

1

BYTE PTR [2000]2000存储单元

内容加1立即数

WORD PTR [BP+SI+50](BP+SI+50)存储器字单元内容加1

减法

类指令减法指

SUB

将目的操作数的内容与源操作

数的内容相减,其结果(两者

之差)存放于目的操作数,或

者说从目的操作数的内容中减

去源操作数的内容

CF、PF、AF、

ZF、SF及

OF。

CF=1,表示

借位;

OF=1,溢出

CH,DL

CH中的内容减

去DL中的内

容,结果在CH

源与目的操作数不

能同时为存储器操

作数

BL,[DI]

在BL中减去

(DI)单元的内

寄存器、

存储器或

立即数

寄存器或

存储器;

不能是立

即数

[BP+4},cl

在SS段的

(BP+4)单元中

减去CL的内容

WORD PTR [BX+DI+50],300在(BX+DI+50)字单元中减去立即数300

BX,3050H

在BX中减去

立即数3050H

AL,56

在AL中减去

立即数56

带借位

的减法指令SBB

在SUB的基础上再减去CF的

值。适合于多字节或多字的减

与SUB相

同与SUB相同与SUB相同

与SUB相

与SUB相

减量(减DEC将目的操作数的内容(8位或与INC相 CL CL中的内容减源操作数为寄存器

1)指令16位)减1,源操作数1隐含

在操作码中。目的操作数为寄

存器或存储器,但不能是段寄

存器或立即数同1为1或存储

器;

不能是段

寄存器或

立即数 AX

AX中的内容减

1

BYTE PTR [BX]

(BX)存储单元

内容减1

WORD PTR [BX+DI+20]

(BX+DI+20)存

储器字单元内

容减1

求补指

令NEG

用0去减目的操作数的内容(8

位或16位),其实质即为求取

目的操作数内容的(2的)补

CF、PF、AF、

ZF、SF及

OF。

与SUB相

AL

AL中的内容求

补码

源操作数

为0

为寄存器

或存储

器;

不能是段

BX

BX中的内容求

补码

BYTE PTR [BX]

(BX)存储单元

内容求补码寄存器或立即数

WORD PTR [BX+SI+5](BX+SI+5)存储器字单元内容求补码

比较指

令CMP

将目的操作数的内容减去源操

作数的内容,但其结果(两者

之差)不回送于目的操作数

CF、PF、AF、

ZF、SF及

OF。

ZF=1,两数

相等;

ZF=0,两数

不等

CF=1,有借

SI,BP

SI与BP内容

比较

源与目的操作数不

能同时为存储器操

作数

CH,[3000]

CH与(3000)存

储单元内容比

寄存器、

存储器或

立即数

寄存器或

存储器;

不能是立

即数

WORD PTR

[BX+DI+100],DX

(BX+DI+100)

字单元与DX

位;CF=0,无借位(无符号) SF ⊕OF=1,被减数大于减数;

SF⊕OF=0,被减数小于减数内容比较

BYTE PTR [BX+SI],40H (BX+SI)字节单元与立即数40H比较

DI,0550H

DI内容与立即

数0550H比较

AL,80累加器AL内容与立即数80比较

法类指无符号

数乘法

指令

MUL

不影响PF、

AF、ZF、SF

只影响CF、

OF

DL

AL与DL内容

相乘,乘积在

AX中

寄存器或

存储器;

不能是立

即数(8

累加器AL

(8位)或

AX(16

位)、DX

CX AX与CX内容

微机原理全部指令用法

一.机械码,又称机器码. ultraedit打开,编辑exe文件时你会看到 许许多多的由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成的数码,这些数码 就是机器码. 修改程序时必须通过修改机器码来修改exe文件. 二.需要熟练掌握的全部汇编知识(只有这么多) 不大容易理解,可先强行背住,混个脸儿熟,以后慢慢的就理解了 cmp a,b 比较a与b mov a,b 把b的值送给a ret 返回主程序 nop 无作用,英文“no operation”的简写,意思是“do nothing”(机器码90)***机器码的含义参看上面 (解释:ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop) call 调用子程序 je 或jz 若相等则跳(机器码74 或0F84) jne或jnz 若不相等则跳(机器码75或0F85) jmp 无条件跳(机器码EB) jb 若小于则跳 ja 若大于则跳 jg 若大于则跳 jge 若大于等于则跳 jl 若小于则跳 jle 若小于等于则跳 pop 出栈 push 压栈 三.常见修改(机器码) 74=>75 74=>90 74=>EB 75=>74 75=>90 75=>EB jnz->nop 75->90(相应的机器码修改) jnz -> jmp 75 -> EB(相应的机器码修改) jnz -> jz 75->74 (正常) 0F 85 -> 0F 84(特殊情况下,有时,相应的机器码修改) 四.两种不同情况的不同修改方法 1.修改为jmp je(jne,jz,jnz) =>jmp相应的机器码EB (出错信息向上找到的第一个跳转)jmp的作用是绝对跳,无条件跳,从而跳过下面的出错信息

微机原理之名词解释

CPU:中央处理器,是一台计算机的运算核心和控制核心 EU:执行部件,负责指令的译码、执行和数据的运算 BIU:总线接口部件,管理CPU与系统总线的接口,负责CPU对存储器和外设进行访问 IP:指令指针寄存器,指示主存储器指令的位置 SP:堆栈指示寄存器,指示堆栈栈顶的位置(偏移地址) CS:代码段寄存器,指示当前代码段的起始位置 DS:数据段寄存器,指示当前数据段的起始位置 SS:堆栈段寄存器,指示当前对战短的起始位置 时钟周期:CLK时钟信号的周期,是CPU的最小时间单位,也叫T状态 总线周期:CPU通过系统总线对存储器或接口进行一次访问的时间 指令周期:完整执行一条指令所用时间 段寄存器:是因为对内存的分段管理而设置的,8086/8088具有4个16位段寄存器:CS、DS、SS、ES 字节:相邻八位二进制数 物理地址:1MB存储区域中某一单元的实际地址 逻辑地址:由段基地址和偏移地址(偏移量)组成,存储单元的地址可以用段基地址和段内偏移量来表示,段基地址确定它所在的段居于整个存储空间的位置,偏移量确定它在段内的位置,这种地址表 示方式称为逻辑地址 BCD码:用四位二进制数表示一位十进制的编码 ASCII码:由8位二进制数组成,用来表示26个英文大小写字母以及一些特殊符号,便于计算机的识别的一种编码 堆栈:一种数据项按序排列的数据结构,采用“先进后出”或“后进先出”的存取操作方式 汇编程序:把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序 指示性语句:不可执行语句,汇编时不产生目标代码,用于指示汇编程序如何编译源程序 指令性语句:可执行语句,在汇编中要产生相应的目标代码,CPU根据这些代码执行相应操作 伪指令:即指示性语句 OFFSET:返回变量或标号的偏移地址 ASSUME:明确段寄存器与逻辑段之间的关系 SEGMENT:定义一个逻辑段,并给逻辑段赋予一个段名 ORG:控制位置计数器,把表达式的值赋给当前位置计数器$ RAM:随机存取存储器,CPU可对RAM的内容进行随机的读写访问 ROM:只读存储器,存储器的内容只能随机的读出而不能写入 EPROM:用紫外光擦除,擦除后可编程,允许用户多次擦除和编程的只读存储器 接口:CPU和存储器、外部设备或者两种外部设备,或者两种机器之间通过系统总线进行连接的逻辑部件(或称电路),它是CPU与外界进行信息交换的中转站,是CPU与外界交换信息的通道 I/O 端口:输入输出端口,用于CPU和外部设备连接和数据交换的接口,能被指令直接寻址的输入输出口 I/O 端口独立编址:从存储空间划出一部分地址空间给I/O设备,把I/O接口中的端口当作存储器单元一样进行访问,不设置专门的I/O指令的编址方式,也称存储器映射编址 I/O 端口统一编址:对接口中的端口单独编址而不占用存储空间,使用专门的I/O指令对端口进行操作的编址方式,也叫I/O映射编址 总线:连接两个以上数字系统元器件的信息通路,是传递信息的一组共用信号线(导线) 中断:指计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回现行程序的间断处,继续执行原程序。 中断源:引起中断的原因或发出中断申请的来源 软件中断:CPU执行指令引起的中断

微机原理指令整理..

类别指 令 类 型 指令名称指令缩写指令功能影响标志格式格式含义源操作数目的操作数 传送指令通 用 传 输 指 令 基本传输 指令 MOV 将源操作数中的数据传送至目的操 作数,以实现寄存器与寄存器、寄 存器与存储器之间数据传送以及立 即数送往寄存器或存储器 无 1.MOV WORD PTR [2000],AX 将AX送2000和 2001单元(低位 在低地址,高位 在高地址,下同) 至少有一个是寄存器 (除立即数送存储器 外); 不能在两个存储单元之 间直接传送数据; 不能在两个段寄存器之 间直接传送数据; 不能将立即数直接送至 段寄存器;SS和SP赋 值必须紧邻 指令指针IP既不作目 的操作数也不做源操作 数 2.MOV AX,ES:[BX+SI+50] 将ES段 (BX+SI+50)字 单元内容送AX 3.MOV SS,BX 将BX内容送SS 4.MOV ES,SS:[DI+200] 将SS段(DI+200) 字单元内容送ES 5.MOV BX,CX 将CS内容送BX 6.MOV WORD PTR [BX+DI],SS 将SS内容送 (BX+DI)字单元 CS不能作目 的操作数; 立即数不能 作目的操作 数 7.MOV CL,DH 将DH内容送CL 8.MOV DI,[SI+100] 将(SI+100)字 单元内容送DI 9.MOV WORD PTR [DI],DX 将DX内容送(DI) 字单元 10.MOV CX,3330 立即数3330送 微机原理指令整理 1

微机原理指令整理 2 CX 11.MOV BYTE PTR [DI],0 立即数0送(DI) 字节单元 堆栈操作 指令 PUSH 将来自通用寄存器、段寄存器或存储单元的一个字(16位)内容压入堆栈(SP 指向的栈顶个单元) 无 1.PUSH AX AX 内容进栈 通用寄存器、段寄存器、存储单元的一个字 CS 不能作目的操作数; 2.PUSH SI SI 内容进栈 3.PUSH ES ES 内容进栈 4.PUSH CS CS 内容进栈 5.PUSH WORD PTR [BX] (BX)和(BX+1)单元内容进栈 6.PUSH WORD PTR BETA [BX] (BX+BETA)字单元内容进栈 不能使用8位源或目的操作数 POP 将栈顶个单元的内容退出(弹出)到通用寄存器、段寄存器或存储单元 无 1.POP BX 栈顶2个字节出栈到BX 不能使用8位源或目的操作数 2.POP DX 栈顶2个字节出栈到DX 通用寄存器、段寄存器、存储单元的一个字节; CS 不能作目的操作数 3.POP ES 栈顶2个字节出栈到ES 4.POP SS 栈顶2个字节出栈到SS 5.POP [BX+50] 栈顶2个字节出栈到(BX+50)字单元 6.POP [BP+DI] 栈顶2个字节出栈到(BP+DI )字单元

微机原理指令汇总情况

我现将指令系统中各种助记符的英文全名写出来,各种助记符的记忆就会变得很简单o(∩_∩)o... 在这之前,先说一下寄存器: 数据寄存器分为: AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据. BH&BL=BX(base):基址寄存器,常用于地址索引; CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器. DH&DL=DX(data):数据寄存器,常用于数据传递。他们的特点是,这4个16位的寄存器可以分为高8位: AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器可以分别寻址,并单独使用。 另一组是指针寄存器和变址寄存器,包括: SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置; BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置; SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针; DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。 指令指针IP(Instruction Pointer) 标志寄存器FR(Flag Register) OF(overflow flag) DF(direction flag) CF(carrier flag) PF(parity flag) AF(auxiliary flag) ZF(zero flag) SF(sign flag) IF(interrupt flag) TF(trap flag) 段寄存器(Segment Register)

微机原理[第三版]课后练习答案解析

1 思考与练习题 一、选择题 1.计算机硬件中最核心的部件是( )。C A.运算器 B.主存储器 C.CPU D.输入/输出设备 2.微机的性能主要取决于( )。 A (B——计算机数据处理能力的一个重要指标) A.CPU B.主存储器 C.硬盘 D.显示器 3.计算机中带符号数的表示通常采用( )。C A.原码 B.反码 C.补码 D.BCD码 4.采用补码表示的8位二进制数真值范围是( )。C A.-127~+127 B.-1 27~+128 C.-128~+127 D.-128~+128 5.大写字母“B”的ASCII码是( )。B A.41H B.42H C.61H D.62H 6.某数在计算机中用压缩BCD码表示为10010011,其真值为( )。C A.10010011B B.93H C.93 D.147 二、填空题 1.微处理器是指_CPU_;微型计算机以_CPU_为核心,配置_内存和I/O接口_构成;其特点是_(1)功能强 (2)可靠性高 (3)价格低 (4)适应性强 (5)体积小 (6)维护方便_。P8 P5 2.主存容量是指_RAM和ROM总和_;它是衡量微型计算机_计算机数据处理_能力的一个重要指标;构成主存的器件通常采用_DRAM和PROM半导体器件_。P5 P9 3.系统总线是_CPU与其他部件之间传送数据、地址和控制信息_的公共通道;根据传送内容的不同可分成_数据、地址、控制_3种总线。P9 4.计算机中的数据可分为_数值型和非数值型_两类,前者的作用是_表示数值大小,进行算术运算等处理操作_;后者的作用是_表示字符编码,在计算机中描述某种特定的信息_。P12 5.机器数是指_数及其符号在机器中加以表示的数值化_;机器数的表示应考虑_机器数的范围、机器数的符号、机器数中小数点位置_3个因素。P15 P16 6.ASCII码可以表示_128_种字符,其中起控制作用的称为_功能码_;供书写程序和描述命令使用的称为_信息码_。P18 P19 三、判断题 1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。( )√ 2.计算机中数据的表示范围不受计算机字长的限制。( )× 3.计算机地址总线的宽度决定了内存容量的大小。( )√ 4.计算机键盘输入的各类符号在计算机内部均表示为ASCII码。( )× (键盘与计算机通信采用ASCII码) 2 思考与练习题 一、选择题 1.在EU中起数据加工与处理作用的功能部件是( )。A A.ALU B.数据暂存器 C.数据寄存器 D.EU控制电路 2.以下不属于BIU中的功能部件是( )。 B A.地址加法器 B.地址寄存器 C.段寄存器 D.指令队列缓冲器

微机原理指令合集

地址总线:AB(单向输出) 数据总线:DB(双向总线) 控制总线:CB(输出输入或双向) 4个16位数据寄存器:AX累加器.BX基址寄存器.CX计数寄存器.DX数据寄存器 高八位记作:AH.BH.CH.DH低八位ALBLCLDL 指针寄存器:SP 堆栈指针寄存器BP基址指针寄存器 变址寄存器:SI 源变址寄存器(源操作数偏移地址)DI 目的变址寄存器 进位标志位:CF最高位 奇偶标志位:PF 低8位1的个数为偶时为1 辅助进位标志位:AF低4位向高4为有进位时 零标志位:ZF算术逻辑运算为零时为1 符号标志位:SF运算结果最高位为1时为1 溢出标志位:OF结果超出有符号数补码表示的范围时为1 跟踪标志位:TF单步中断方式逐条检查 方向标志位:DF 中断允许标志位:IF为1时CPU可以响应可屏蔽中断(INTR)请求 立即数寻址:MOV BL,5BH 寄存器寻址:MOV DS,AX 存储器寻址: 直接寻址:MOV AX,[2000H] 寄存器间接寻址:MOV AX,[BP] 操作数有效地址在BX,BP,SI,DI,当在BX ,SI,DI中 默认DS为基址,在BP中默认SS为基址 寄存器相对寻址:MOV AX,COUNT[SI] 例:MOV BP:[DI+45H] 基址加变址寻址:MOV AX, [SI+BP] 相对基址加变址寻址指令MOV AX, [SI+BP+1234H] 指令 数据传送指令MOV dst,src 交换指令:XCHG dst,src 查表指令:XLA T[表首址]DS:(BX+AL)给AL 堆栈传送指令:PUSH src 取偏移地址指令;LEA dst,src 指针送寄存器和DS:LDS dst,src 指针送寄存器和ES:LES dst,src 标志传送指令:LAHF SAHF PUSHF POPF 输入、输出指令:IN.OUT 加法指令:ADD dst,src 带进位加法指令:ADC dst,src (CF也要加) 加1指令:INC dst 减法指令:SUB dst,src 带借位减法指令:SBB dst,src(也要减CF) 减1指令:DEC src111 求补指令:NEG src (0减src)比较指令:CMP dst,src(相减但不送回目的操作数,结果都不变) 乘法指令:MUL src 字节操作数:AL*src给AX 字操作数:AX*src给AX 带符号数乘法指令:IMUL src 字运算AX字节运算AL 除法指令:DIV src 字节将AX/src给AL余数该AH 字将(DX,AX)/src给AX 余数给DX 带符号数除法指令:IDIV src CBW 将字节转换为字CWD将字转换为字节 逻辑运算: 逻辑与:AND dst,src 逻辑或:OR dst,src 非:NOT dst 异或:XOR dst,src 测试:TEST dst,src(测试判断某些位知否同时为0) 移位指令 算术左移指令SAL dst, CL;移位位数 逻辑左移指令SHL dst ,CL;移位位数 算术右移指令:SAR dst ,CL;移位位数 逻辑右移指令:SHR dst,CL ;移位位数 循环移位指令: 循环左移指令:ROL dst,CL;移位位数 循环右移指令:ROR dst,CL;移位位数 带进位循环左移:RCL dst,CL;移位位数 带进位循环右移:RCR dst,CL;移位位数 串操作指令: 串传送指令:MOVS/W 串比较指令:CMPSB/W 串搜索指令:SCASB/W 取串指令:LODS/W 存串指令:STOSB/W 重复前缀指令:REP SOPR 重复执行REP指令后紧跟着的一个串操作指令,知直到CX寄 存器中的值为0 REPE/REPZ执行REPE/REPZ后紧跟的一个串操作指令,当相等、为0时重复,直到CX=0/ZF=0 REPNE/REPNZ 执行REPNE/REPNZ后紧跟的串操作指令当不为0、不相等时重复,直到CX=0/ZF=0 转移指令: 远程转移:JMP FAR PTR OPRD(IP=IP+16位移量) 近程转移:JMP NEAR PTR OPRD (IP=IP+8位移量)段内间接转移:JMP reg16 JMP men16 (IP)←reg16或men16 段间间接转移:JMP DWORD PTR [BX+SI] 调用和返回指令: 段内直接调用:CALL dst(SP=SP-2,SP+1,IP指向SP,IP=IP+16 段内直接调用:CALL dst (同,同,EA指向IP) 段间直接调用:CALL dst(SP=SP-2,SP+1,CS指向SP,SP=SP-2,SP+1,IP指向SP, 偏移地址指向IP,段地址指向CS) 段间间接调用:CALL dst 段内返回:RET(IP=SP+1,SP,SP=SP+2) 段内带立即数返回:RET n 循环控制指令: LOOP OPRD(CX=CX-1,若CX≠0则循环LOOPNZ/LOOPE OPRD(CX=CX-1,若CX≠0ZF=0则循环) LOOPZ/LOOPE OPRD 地址总线:AB(单向输出) 数据总线:DB(双向总线) 控制总线:CB(输出输入或双向) 4个16位数据寄存器:AX累加器.BX基址寄存器.CX计 数寄存器.DX数据寄存器 高八位记作:AH.BH.CH.DH低八位ALBLCLDL 指针寄存器:SP 堆栈指针寄存器BP基址指针寄存器 变址寄存器:SI 源变址寄存器(源操作数偏移地址)DI 目的变址寄存器 进位标志位:CF最高位 奇偶标志位:PF 低8位1的个数为偶时为1 辅助进位标志位:AF低4位 向高4为有进位时 零标志位:ZF算术逻辑运算为零时为1 符号标志位:SF运算结果最高位为1时为1 溢出标志位:OF结果超出有符号数补码表示的范围时为 1 跟踪标志位:TF单步中断方式逐条检查 方向标志位:DF 中断允许标志位:IF为1时CPU可以响应可屏蔽中断 (INTR)请求 立即数寻址:MOV BL,5BH 寄存器寻址:MOV DS,AX 存储器寻址: 直接寻址:MOV AX,[2000H] 寄存器间接寻址:MOV AX,[BP] 操作数有效地址在BX,BP,SI,DI,当在BX ,SI,DI中 默认DS为基址,在BP中默认SS为基址 寄存器相对寻址:MOV AX,COUNT[SI] 例: MOV BP:[DI+45H] 基址加变址寻址:MOV AX, [SI+BP] 相对基址加变址寻址指令MOV AX, [SI+BP+1234H] 指令 数据传送指令MOV dst,src 交换指令:XCHG dst,src 查表指令:XLA T[表首址]DS:(BX+AL)给AL 堆栈传送指令:PUSH src 取偏移地址指令;LEA dst,src 指针送寄存器和DS:LDS dst,src 指针送寄存器和ES:LES dst,src 标志传送指令:LAHF SAHF PUSHF POPF 输入、输出指令:IN.OUT 加法指令:ADD dst,src 带进位加法指令:ADC dst,src (CF也要加) 加1指令:INC dst 减法指令:SUB dst,src 带借位减法指令:SBB dst,src(也要减CF) 减1指令:DEC src111 求补指令:NEG src (0减src) 比较指令:CMP dst,src(相减但不送回目的操作数,结果 都不变) 乘法指令:MUL src 字节操作数:AL*src给AX 字操作 数:AX*src给AX 带符号数乘法指令:IMUL src 字运算AX字节运算AL 除法指令:DIV src 字节将AX/src给AL余数该AH 字 将(DX,AX)/src给AX 余数给DX 带符号数除法指令:IDIV src CBW 将字节转换为字CWD将字转换为字节 逻辑运算: 逻辑与:AND dst,src 逻辑或:OR dst,src 非:NOT dst 异或:XOR dst,src 测试:TEST dst,src(测试判断某些位知否同时为0) 移位指令 算术左移指令SAL dst, CL;移位位数 逻辑左移指令SHL dst ,CL;移位位数 算术右移指令:SAR dst ,CL;移位位数 逻辑右移指令:SHR dst,CL ;移位位数 循环移位指令: 循环左移指令:ROL dst,CL;移位位数 循环右移指令:ROR dst,CL;移位位数 带进位循环左移:RCL dst,CL;移位位数 带进位循环右移:RCR dst,CL;移位位数 串操作指令: 串传送指令:MOVS/W 串比较指令:CMPSB/W 串搜索指令:SCASB/W 取串指令:LODS/W 存串指令:STOSB/W 重复前缀指令:REP SOPR 重复执行REP指令后紧跟着 的一个串操作指令,知直到CX寄 存器中的值为0 REPE/REPZ执行REPE/REPZ后紧跟的 一个串操作指令,当相等、为0时重复,直到CX=0/ZF=0 REPNE/REPNZ 执行REPNE/REPNZ后紧跟的串操作指 令当不为0、不相等时重复,直到CX=0/ZF=0 转移指令: 远程转移:JMP FAR PTR OPRD(IP=IP+16位移量) 近程转移:JMP NEAR PTR OPRD (IP=IP+8位移量) 段内间接转移:JMP reg16 JMP men16 (IP)←reg16或men16 段间间接转移:JMP DWORD PTR [BX+SI] 调用和返回指令: 段内直接调用:CALL dst(SP=SP-2,SP+1,IP指向 SP,IP=IP+16 段内直接调用:CALL dst (同,同,EA指向IP) 段间直接调用:CALL dst(SP=SP-2,SP+1,CS指向 SP,SP=SP-2,SP+1,IP指向SP, 偏移地址指向IP,段地址指向CS) 段间间接调用:CALL dst 段内返回: RET(IP=SP+1,SP,SP=SP+2) 段内带立即数返回:RET n 循环控制指令: LOOP OPRD(CX=CX-1,若CX≠0则循环 LOOPNZ/LOOPE OPRD(CX=CX-1,若CX≠0ZF=0则 循环) LOOPZ/LOOPE OPRD 地址总线:AB(单向输出) 数据总线:DB(双向总线) 控制总线:CB(输出输入或双向) 4个16位数据寄存器:AX累加器.BX基址寄存器.CX计 数寄存器.DX数据寄存器 高八位记作:AH.BH.CH.DH低八位ALBLCLDL 指针寄存器:SP 堆栈指针寄存器BP基址指针寄存器 变址寄存器:SI 源变址寄存器(源操作数偏移地址)DI 目的变址寄存器 进位标志位:CF最高位 奇偶标志位:PF 低8位1的个数为偶时为1 辅助进位标志位:AF低4位 向高4为有进位时 零标志位:ZF算术逻辑运算为零时为1 符号标志位:SF运算结果最高位为1时为1 溢出标志位:OF结果超出有符号数补码表示的范围时为 1 跟踪标志位:TF单步中断方式逐条检查 方向标志位:DF 中断允许标志位:IF为1时CPU可以响应可屏蔽中断 (INTR)请求 立即数寻址:MOV BL,5BH 寄存器寻址:MOV DS,AX 存储器寻址: 直接寻址:MOV AX,[2000H] 寄存器间接寻址:MOV AX,[BP] 操作数有效地址在BX,BP,SI,DI,当在BX ,SI,DI中 默认DS为基址,在BP中默认SS为基址 寄存器相对寻址:MOV AX,COUNT[SI] 例: MOV BP:[DI+45H] 基址加变址寻址:MOV AX, [SI+BP] 相对基址加变址寻址指令MOV AX, [SI+BP+1234H] 指令 数据传送指令MOV dst,src 交换指令:XCHG dst,src 查表指令:XLA T[表首址]DS:(BX+AL)给AL 堆栈传送指令:PUSH src 取偏移地址指令;LEA dst,src 指针送寄存器和DS:LDS dst,src 指针送寄存器和ES:LES dst,src 标志传送指令:LAHF SAHF PUSHF POPF 输入、输出指令:IN.OUT 加法指令:ADD dst,src 带进位加法指令:ADC dst,src (CF也要加) 加1指令:INC dst 减法指令:SUB dst,src 带借位减法指令:SBB dst,src(也要减CF) 减1指令:DEC src111 求补指令:NEG src (0减src) 比较指令:CMP dst,src(相减但不送回目的操作数,结果 都不变) 乘法指令:MUL src 字节操作数:AL*src给AX 字操作 数:AX*src给AX 带符号数乘法指令:IMUL src 字运算AX字节运算AL 除法指令:DIV src 字节将AX/src给AL余数该AH 字 将(DX,AX)/src给AX 余数给DX 带符号数除法指令:IDIV src CBW 将字节转换为字CWD将字转换为字节 逻辑运算: 逻辑与:AND dst,src 逻辑或:OR dst,src 非:NOT dst 异或:XOR dst,src 测试:TEST dst,src(测试判断某些位知否同时为0) 移位指令 算术左移指令SAL dst, CL;移位位数 逻辑左移指令SHL dst ,CL;移位位数 算术右移指令:SAR dst ,CL;移位位数 逻辑右移指令:SHR dst,CL ;移位位数 循环移位指令: 循环左移指令:ROL dst,CL;移位位数 循环右移指令:ROR dst,CL;移位位数 带进位循环左移:RCL dst,CL;移位位数 带进位循环右移:RCR dst,CL;移位位数 串操作指令: 串传送指令:MOVS/W 串比较指令:CMPSB/W 串搜索指令:SCASB/W 取串指令:LODS/W 存串指令:STOSB/W 重复前缀指令:REP SOPR 重复执行REP指令后紧跟着 的一个串操作指令,知直到CX寄 存器中的值为0 REPE/REPZ执行REPE/REPZ后紧跟的 一个串操作指令,当相等、为0时重复,直到CX=0/ZF=0 REPNE/REPNZ 执行REPNE/REPNZ后紧跟的串操作指 令当不为0、不相等时重复,直到CX=0/ZF=0 转移指令: 远程转移:JMP FAR PTR OPRD(IP=IP+16位移量) 近程转移:JMP NEAR PTR OPRD (IP=IP+8位移量) 段内间接转移:JMP reg16 JMP men16 (IP)←reg16或men16 段间间接转移:JMP DWORD PTR [BX+SI] 调用和返回指令: 段内直接调用:CALL dst(SP=SP-2,SP+1,IP指向 SP,IP=IP+16 段内直接调用:CALL dst (同,同,EA指向IP) 段间直接调用:CALL dst(SP=SP-2,SP+1,CS指向 SP,SP=SP-2,SP+1,IP指向SP, 偏移地址指向IP,段地址指向CS) 段间间接调用:CALL dst 段内返回: RET(IP=SP+1,SP,SP=SP+2) 段内带立即数返回:RET n 循环控制指令: LOOP OPRD(CX=CX-1,若CX≠0则循环 LOOPNZ/LOOPE OPRD(CX=CX-1,若CX≠0ZF=0则 循环) LOOPZ/LOOPE OPRD 地址总线:AB(单向输出) 数据总线:DB(双向总线) 控制总线:CB(输出输入或双向) 4个16位数据寄存器:AX累加器.BX基址寄存器.CX计 数寄存器.DX数据寄存器 高八位记作:AH.BH.CH.DH低八位ALBLCLDL 指针寄存器:SP 堆栈指针寄存器BP基址指针寄存器 变址寄存器:SI 源变址寄存器(源操作数偏移地址)DI 目的变址寄存器 进位标志位:CF最高位 奇偶标志位:PF 低8位1的个数为偶时为1 辅助进位标志位:AF低4位 向高4为有进位时 零标志位:ZF算术逻辑运算为零时为1 符号标志位:SF运算结果最高位为1时为1 溢出标志位:OF结果超出有符号数补码表示的范围时为 1 跟踪标志位:TF单步中断方式逐条检查 方向标志位:DF 中断允许标志位:IF为1时CPU可以响应可屏蔽中断 (INTR)请求 立即数寻址:MOV BL,5BH 寄存器寻址:MOV DS,AX 存储器寻址: 直接寻址:MOV AX,[2000H] 寄存器间接寻址:MOV AX,[BP] 操作数有效地址在BX,BP,SI,DI,当在BX ,SI,DI中 默认DS为基址,在BP中默认SS为基址 寄存器相对寻址:MOV AX,COUNT[SI] 例: MOV BP:[DI+45H] 基址加变址寻址:MOV AX, [SI+BP] 相对基址加变址寻址指令MOV AX, [SI+BP+1234H] 指令 数据传送指令MOV dst,src 交换指令:XCHG dst,src 查表指令:XLA T[表首址]DS:(BX+AL)给AL 堆栈传送指令:PUSH src 取偏移地址指令;LEA dst,src 指针送寄存器和DS:LDS dst,src 指针送寄存器和ES:LES dst,src 标志传送指令:LAHF SAHF PUSHF POPF 输入、输出指令:IN.OUT 加法指令:ADD dst,src 带进位加法指令:ADC dst,src (CF也要加) 加1指令:INC dst 减法指令:SUB dst,src 带借位减法指令:SBB dst,src(也要减CF) 减1指令:DEC src111 求补指令:NEG src (0减src) 比较指令:CMP dst,src(相减但不送回目的操作数,结果 都不变) 乘法指令:MUL src 字节操作数:AL*src给AX 字操作 数:AX*src给AX 带符号数乘法指令:IMUL src 字运算AX字节运算AL 除法指令:DIV src 字节将AX/src给AL余数该AH 字 将(DX,AX)/src给AX 余数给DX 带符号数除法指令:IDIV src CBW 将字节转换为字CWD将字转换为字节 逻辑运算: 逻辑与:AND dst,src 逻辑或:OR dst,src 非:NOT dst 异或:XOR dst,src 测试:TEST dst,src(测试判断某些位知否同时为0) 移位指令 算术左移指令SAL dst, CL;移位位数 逻辑左移指令SHL dst ,CL;移位位数 算术右移指令:SAR dst ,CL;移位位数 逻辑右移指令:SHR dst,CL ;移位位数 循环移位指令: 循环左移指令:ROL dst,CL;移位位数 循环右移指令:ROR dst,CL;移位位数 带进位循环左移:RCL dst,CL;移位位数 带进位循环右移:RCR dst,CL;移位位数 串操作指令: 串传送指令:MOVS/W 串比较指令:CMPSB/W 串搜索指令:SCASB/W 取串指令:LODS/W 存串指令:STOSB/W 重复前缀指令:REP SOPR 重复执行REP指令后紧跟着 的一个串操作指令,知直到CX寄 存器中的值为0 REPE/REPZ执行REPE/REPZ后紧跟的 一个串操作指令,当相等、为0时重复,直到CX=0/ZF=0 REPNE/REPNZ 执行REPNE/REPNZ后紧跟的串操作指 令当不为0、不相等时重复,直到CX=0/ZF=0 转移指令: 远程转移:JMP FAR PTR OPRD(IP=IP+16位移量) 近程转移:JMP NEAR PTR OPRD (IP=IP+8位移量) 段内间接转移:JMP reg16 JMP men16 (IP)←reg16或men16 段间间接转移:JMP DWORD PTR [BX+SI] 调用和返回指令: 段内直接调用:CALL dst(SP=SP-2,SP+1,IP指向 SP,IP=IP+16 段内直接调用:CALL dst (同,同,EA指向IP) 段间直接调用:CALL dst(SP=SP-2,SP+1,CS指向 SP,SP=SP-2,SP+1,IP指向SP, 偏移地址指向IP,段地址指向CS) 段间间接调用:CALL dst 段内返回: RET(IP=SP+1,SP,SP=SP+2) 段内带立即数返回:RET n 循环控制指令: LOOP OPRD(CX=CX-1,若CX≠0则循环 LOOPNZ/LOOPE OPRD(CX=CX-1,若CX≠0ZF=0则 循环) LOOPZ/LOOPE OPRD

微机原理简答

1.一般微处理器内部结构由哪三部分组成?P6 运算器(算术逻辑单元),控制器,内部寄存器 2.接口按功能可分为那几类?P242 通用接口和专用接口 3.3.接口的主要功能有那几种?P243 缓冲锁存数据,地址译码,传送命令,码制转换,电平转换 4.典型的微机硬件结构是用什么将各部位连接起来的? 总线 5.什么是计算机的位长?P8 计算机数据总线上一次能处理的信息的位数即位长 6.什么是CPU总线的带宽?P23 总线的带宽是指总线能同时传输的数据位数量 7.什么是CPU总线的工作频率?P23 用于协调总线上各种操作的时钟频率 8.什么是Intel8086指令的直接寻址方式?P77 指令中以位移量方式直接给出操作数的有效地址EA 9.64*1bit的DRAM芯片通常有多少个地址线引脚和数据线引脚? 6地址线引脚和1数据线引脚 10.Intel8086系统中条件转移指令的转移范围有什么限制? -128—127 11.中断向量表: 也称中断入口地址表。该表说明了中断类型号和中断服务程序的入口地址之间的联系。P235 12.中断:就是使CPU暂停运行原来的程序,按照更为急迫事件的需要转去执行为中断源服务的程序,待该程序处理完后,再返回运行原程序,此即中断。P223 13.总线:是用来传送信息的公共导线,可分为数据总线,地址总线,控制总线。P4??? 14.有效地址:表示所寻址的地址单元距离段起地址的之间的偏移字节的多少,也称偏移地址。P69 15.指令周期:指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。百度百科。P10

微机原理常用命令

一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。 1. 通用数据传送指令 MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈. PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈. POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈. BSWAP 交换32位寄存器里字节的顺序 XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加.( 结果在第一个操作数里) XLAT 字节查表转换. ── BX 指向一张256 字节的表的起点, AL 为表的索引值(0-255,即 0-FFH); 返回AL 为查表结果. ( [BX+AL]->AL ) 2. 输入输出端口传送指令. IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} ) OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器) 输入输出端口由立即方式指定时, 其范围是0-255; 由寄存器DX 指定时, 其范围是0-65535. 3. 目的地址传送指令. LEA 装入有效地址. 例: LEA DX,string ;把偏移地址存到DX. LDS 传送目标指针,把指针内容装入DS. 例: LDS SI,string ;把段地址:偏移地址存到DS:SI. LES 传送目标指针,把指针内容装入ES. 例: LES DI,string ;把段地址:偏移地址存到ES:DI. LFS 传送目标指针,把指针内容装入FS. 例: LFS DI,string ;把段地址:偏移地址存到FS:DI. LGS 传送目标指针,把指针内容装入GS. 例: LGS DI,string ;把段地址:偏移地址存到GS:DI. LSS 传送目标指针,把指针内容装入SS. 例: LSS DI,string ;把段地址:偏移地址存到SS:DI.

微机原理题库2

第3章 汇编语言 一.填空题 1.指令MOV [BX+SI],AL 中的目的操作数使用______段寄存器,属于______寻址方式。 解答:指令MOV [BX+SI],AL 中的目的操作数使用___DS___段寄存器,属于__基址变址____寻址方式。 2. 指令MOV BX ,NUM[SI]的源操作数使用的是______寻址方式,SUB AX ,[BX+SI]使用的是______寻址方式。 解答:指令MOV BX ,NUM[SI]源操作数使用了变址寄存器和一个位移量,因此是变址寻址方式。 指令SUB AX ,[BX+SI]中源操作数指定的一个基址寄存器BX 和一变址寄存器SI ,因此属于基址变址寻址方式。 3.指令LEA BX,[BP+SI]的源操作数位于 ,执行后BX 的内容是 。 解答:指令LEA BX,[BP+SI]的源操作数位于 堆栈段 ,执行后BX 的内容是 BP 和SI 的内容之和 。 4. 堆栈指针SP 的初值为2000H ,AX=3000H ,BX=5000H ,CX=1000H ,问 (1)执行PUSH AX ,PUSH BX 后,SP= 。 (2)再执行PUSH CX ,POPBX ,POPAX 后, SP= AX= ,BX= 解答:(1)执行PUSH AX SP -2=1FFEH →SP ,指针在位置1处,栈顶为AX 的内容 执行PUSH BX SP -2=1FFCH →SP ,指针在位置2处,栈顶为BX 的内容 (2)再执行PUSH CX ,POPBX ,POPAX 后, 执行PUSH CX SP -2=1FFAH →SP ,指针在位置3处,栈顶为CX 的内容 执行POP BX 将栈顶内容1000H 弹出到BX 中,SP +2=1FFCH →SP ,指针在位置4处,BX =1000H 执行POP AX 将栈顶内容5000H 弹出到AX 中,SP +2=1FFEH →SP ,指针在位置5处,AX =5000H 本题的正确答案为: (1)执行PUSH AX ,PUSH BX 后,SP= 1FFCH 。 (2)再执行PUSH CX ,POPBX ,POPAX 后, SP= 1FFEH AX= 5000H ,BX= 1000H …… ③1FFAH 00H 10H ②1FFCH ④ 00H 50H ①1FFEH ⑤ 00H 30H 2000H ……

微机原理指令集合

微机原理8086 指令集合 地址总线:AB(单向输出) 数据总线:DB(双向总线) 控制总线:CB(输出输入或双向) 4个16位数据寄存器:AX累加器.BX基址寄存器.CX计数寄存器.DX数据寄存器 高八位记作:AH.BH.CH.DH低八位ALBLCLDL 指针寄存器:SP 堆栈指针寄存器BP基址指针寄存器 变址寄存器:SI 源变址寄存器(源操作数偏移地址)DI目的变址寄存器 进位标志位:CF最高位 奇偶标志位:PF 低8位1的个数为偶时为1 辅助进位标志位:AF低4位向高4为有进位时 零标志位:ZF算术逻辑运算为零时为1 符号标志位:SF运算结果最高位为1时为1 溢出标志位:OF结果超出有符号数补码表示的范围时为1 跟踪标志位:TF单步中断方式逐条检查 方向标志位:DF 中断允许标志位:IF为1时CPU可以响应可屏蔽中断(INTR)请求 立即数寻址:MOV BL,5BH 寄存器寻址:MOV DS,AX 存储器寻址:1直接寻址:MOV AX,[2000H] 2寄存器间接寻址:MOV AX,[BP] 操作数有效地址在BX,BP,SI,DI,当在BX ,SI,DI中 默认DS为基址,在BP中默认SS为基址 3寄存器相对寻址:MOV AX,COUNT[SI] 例:MOV BP:[DI+45H] 4基址加变址寻址:MOV AX, [SI+BP] 5相对基址加变址寻址指令MOV AX, [SI+BP+1234H]

指令 数据传送指令MOV dst,src 交换指令:XCHG dst,src 查表指令:XLAT[表首址]DS:(BX+AL)给AL 堆栈传送指令:PUSH src 取偏移地址指令;LEA dst,src 指针送寄存器和DS:LDS dst,src 指针送寄存器和ES:LES dst,src 标志传送指令:LAHF SAHF PUSHF POPF 输入、输出指令:IN.OUT 加法指令:ADD dst,src 带进位加法指令:ADC dst,src (CF也要加) 加1指令:INC dst 减法指令:SUB dst,src 带借位减法指令:SBB dst,src(也要减CF) 减1指令:DEC src111 求补指令:NEG src (0减src) 比较指令:CMP dst,src(相减但不送回目的操作数,结果都不变) 乘法指令:MUL src 字节操作数:AL*src给AX 字操作数:AX*src给AX 带符号数乘法指令:IMUL src 字运算AX字节运算AL 除法指令:DIV src 字节将AX/src给AL余数该AH 字将(DX,AX)/src给AX 余数给DX 带符号数除法指令:IDIV src CBW 将字节转换为字CWD将字转换为字节 逻辑运算: 逻辑与:AND dst,src 逻辑或:OR dst,src 非:NOT dst 异或:XOR dst,src 测试:TEST dst,src(测试判断某些位知否同时为0)

微机原理 debug指令详解

微机原理debug指令详解 一、DEBUG概述 DEBUG是在DOS状态下面供程序员使用的程序调试工具。它可以用来检查内存中任何地址中的内容以及修改特定地址中的内容。DEBUG还可以用于逐指令执行某个程序,追踪程序的执行过程,比较一条指令执行前后数值变化情况,读写文件与磁盘扇区。此外,DEBUG 还可以用于读写端口中的数值。 在DEBUG状态下,所有数据都作为字节序列,可以用DEBUG把任何类型的文件读入内存中。DEBUG能够处理的数据为两种: 十六进制数和ASCⅡ码,使用两位数表示十六进制数据(0~9,A~F)。在DEBUG中涉及内存中的数据时,要指定数据所在的内存单元的地址,地址的输入格式是: [段地址]: [位移]。如果没有输入地址,DEBUG将假定为当前内存段,从位于地址100H的字节开始。前100H字节保留给程序段前缀使用(称PSP结构,包含程序执行的各种信息),该区域用于建立DOS与程序之间的联系。在DEBUG中,使用四位十六进制数表示地址(0~9,A~F)。 DEBUG输入数据时有两种方法: 提示方法和非提示方法。在提示方法下,输入要求输入数据的命令,后跟保存数据的地址。执行后可以看到该地址中已有的内容及一个冒号提示符。此时可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到“—”提示符。在非提示方法下,输入保持数据的内存地址以及要输入的数据。DEBUG的启动:进入DOS 状态下,键入DEBUG ?,按ENTER键,如: C:\>DEBUG ?,则屏幕显示:- 符号“-”是进入DEBUG的提示符,在该提示符下可键入任意DEBUG命令。 DEBUG的退出: 在DEBUG的提示符后输入Q命令,按ENTER键,则退出DEBUG返回DOS。 DEBUG的使用: 在DEBUG的提示符后输入DEBUG命令,按ENTER键。 二、DEBUG 命令详解 ★A命令 格式:A[地址] 功能:将指令直接汇编成机器码输入到内存中。 参数说明:[地址]指定存放键入汇编语言指令的内存单元的位置。 ★C命令 格式:C[源地址范围][目的地址] 功能:比较两内存区域中的内容是否相同。若不同则按字节显示其地址和内容,若相同则不

相关主题
文本预览
相关文档 最新文档