汇编语言课件(4)

2019-03-16 13:26

汇编语言程序设计

格式:POPF 操作:

(FLAG)←((SP)+1,(SP)) (SP)←(SP)+2 5)类型转换指令

①CBW(convert byte to word) 字节转换为字命令 格式:CBW

操作:AL的内容符号括号到AH,形成AX中的字。

说明:若AL的符号位为0,则(AH)=0;若AL的符号位为1,则(AH)=0FFH。 例如:

(AL)=01H,则CBW执行后,(AX)=0001H (AL)=0F1H,则CBW执行后,(AX)=0FFF1H

②CWD(convert word to double word) 字转换为双字命令 格式:CWD

操作:AX的内容符号括号到DX,形成DX:AX中的双字。

2、算术运算指令 1)加法指令

包括:ADD、ADC、INC ① ADD不带进位位的加法指令 格式:ADD DST,SRC

操作:(DST)←(DST)+(SRC) ② ADC带进位位的加法指令 格式:ADC DST,SRC

操作:(DST)←(DST)+(SRC)+CF ③ INC增量指令 格式:INC OPR

操作:(OPR)←(OPR)+1 说明: ① 均可为字/字节操作 ② 均影响标志位,但INC不影响CF标志位 ③ 对标志位的影响 ·结果为负,则SF=1,否则SF=0 ·结果为0,则ZF=1,否则ZF=0 ·最高有效位有进位时CF=1,否则CF=0

- 15 -

汇编语言程序设计

·当两个操作数的符号相同,而结果的符号与之相反,则OF=1,否则OF=0 ④ CF=1表示无符号加法溢出 OF=1表示带符号加法溢出

2)减法指令

包括:SUB、SBB、DEC、NEG、CMP ① SUB不考虑借位的减法指令 格式:SUB DST,SRC

操作:(DST)←(DST)-(SRC) ② SBB考虑借位的减法指令 格式:SBB DST,SRC

操作:(DST)←(DST)-(SRC)-CF ③ DEC减量指令 格式:DEC OPR

操作:(OPR)←(OPR)-1 ④ NEG求补指令 格式:NEG OPR

操作:(OPR)←0FFFFH-(OPR)-1 (字) (OPR)←0FFH-(OPR)-1 (字节)

即各位取反加1

如:NEG AX

设(AX)=1234H,则结果(AX)=0EDCCH ⑤ CMP比较指令

格式:CMP OPR1,OPR2

操作:(OPR1)-(OPR2),结果不保存,只根据结果设置标志位 说明:

1、均可为字/字节操作

2、均影响标志位,但DEC不影响CF 3、对标志位的影响 ·① ② ⑤:CF:有借位时CF=1 ·① ② ③ ⑤:OF:若两个操作数的符号相反,而结果与减数的相同,则OF=1 ·④ :CF:OPR为0,则CF=0,否则CF=1(实际还是最高有效位产生进位)

OF:字节运算时OPR为-128或字运算时OPR为-32768时,OF=1,否则为0

(求补即为求其相反数的补码,实际还是超出了机器的表示范围)

- 16 -

汇编语言程序设计

3)乘法指令

包括:MUL 无符号相乘、IMUL带符号数相乘

格式:MUL SRC 或 IMUL SRC 操作:

字节:(AX)←(AL)*(SRC)

字:(DX,AX)←(AX)*(SRC) 说明: ① 由SRC决定是字操作还是字节操作 ② SRC不可用立即寻址 ③ 对标志位的影响

◆对除CF和OF以外的条件码无定义。(无定义即运算后条件码的状态不定) ◆对CF和OF的影响:

MUL:若乘积的高一半为0,则CF和OF位均为0,否则为1。

IMUL:若乘积的高一半为低一半的符号扩展,则CF和OF位均为0,否则为1。 注意:可通过CF,OF判断乘积是否扩展到了高一半。 4)除法指令

包括:DIV 无符号数除法、IDIV带符号数的除法

格式:DIV SRC 或 IDIV SRC 操作: 字节:

(AL)←(AX)/(SRC)的商 (AH)←(AX)/(SRC)的余数 字:

(AX)←(DX,AX)/(SRC)的商 (DX)←(DX,AX)/(SRC)的余数 说明: ① SRC不允许为立即寻址方式 ② 除法指令对各标志位无定义 ③ 8086中规定余数符号和被除数的符号相同 例如:-30/8 商 余数 -4 2 × -3 -6 √ ④ 若被除数与除数的位数相同,需要对被除数进行扩展 例如:-8/2 程序为: MOV AX, -8 MOV AL,-8 MOV BL,2 MOV BL,2 IDIV BL CBW - 17 - 汇编语言程序设计

IDIV BL 结果:商al=0fcH,余数ah=0

3、逻辑运算和移位指令 1) 逻辑运算指令

包括AND、OR、NOT、XOR、TEST ① AND 逻辑与指今 格式:AND DST,SRC

执行的操作:(DST)←(DST)∧ (SRC) 注:常用于屏蔽某些位

例如:屏蔽AL的第0,1,4位。 MOV AL,0BFH AND AL,0ECH ② OR 逻辑或指令 格式:OR DST,SRC

执行的操作:(DST)←(DST)∨ (SRC) 注:常用于对某些位置1。 例如:置BL的第1,5位为1 MOV BL,87H OR BL,22H ③ NOT 逻辑非指令 格式:NOT OPR

执行的操作:(OPR)←(OPR) ④ XOR 异或指令

格式:XOR DST,SRC

执行的操作:(DST)←(DST)?(SRC)

注:常用于对某些位取反。

例如:将ax的第0,4,7,12,14位取反。 MOV AX,4A3BH XOR AX,5091H ⑤ TEST 测试指令

格式:TEST OPRl,OPR2 执行的操作:(OPRl)∧ (OPR2) (不保存结果,根据结果设置标志位) 注:常用于测试某些位是否为0。

例如:测试al的第0,1,2,3,5,7位是否为0. MOV AL,40H TEST AL,0AFH ZF=1:结果为0.

- 18 -

汇编语言程序设计

说明:

1. 可以为字/字节操作 2. 对标志位的影响: ★ NOT不影响标志位 ★ 其余的指令使CF,OF为0,AF无定义,SF,ZF,PF根据结果设置。

2) 移位指令

包括:SHL,SHR,SAL,SAR,ROL,ROR,RCL,RCR ① 逻辑左移指令

格式:SHL OPR,CNT

注:CNT=1时,可以直接写1,如:SHL OPR,1 CNT>1时 必须把CNT放在CL中。

如:要将AX逻辑左移5位 MOV CL,5 SHL AX,CL

操作:

② 算术左移指令

格式:SAL OPR,CNT 操作:与SHL相同 ③ 逻辑右移指令

格式:SHR OPR,CNT 操作:

④ 算术右移指令

格式:SAR OPR,CNT 操作:

- 19 -


汇编语言课件(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅谈待定系数法在中学数学中的应用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: