汇编语言常用指令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汇编语言常用指令
(1)数据传送指令:
Mov mem,ac
将ac中的数值传送到mem中,如: Mov Ax, 6BH,意思将十六进制数6B放到Ax中
(2)XCHG AX,BX
数据交换指令,将Ax与Bx数据交换,指令执行前:AX=420AH BX=7955H,指令执行后:AX=7955H, BX=420AH
(3)LEA REG,SRC
将SRC的有效地址送到REG中
(4)ADD加法指令
ADD AH,BH
指令执行前:AH=56H, BH=24H,指令执行后:7AH
01010110 AH
00100100 BH
________________
01111010 AH
(5)ADC加法指令
ADC加法指令与ADD很相似,不同的是会再加上进位标志符CF的值
如:指令执行前:DX=0002H AX=F365H BX=0005H CX=E024H
执行:ADD AX,CX
1111 0011 0110 0101
1110 0000 00100100
CF - 1 1101 0011 10001001
执行:ADC DX,BX
0000000000000010 DX
0000000000000101 BX
1CF
000000000001000 DX
(6)INC: 加1指令
INC AL
AL执行前为67H,指令执行后变为:68H
(7)SUB:不带借位的减法指令
SUB BX,7CX
指令执行前:BX=9543H,CX=28AH
1001 0101 01000011 BX
0010 1000 10100111 CX
0110 1100 10011100 BX
(8)DEC:减1指令(与INC的含义相同)
(9)MUL:乘法指令
字节操作数:AX←AL*(SRC)
字操作数:DX,AX←AX*(SRC)
具体见2007年春试题81
(10)DAA:加法的十进制调整指令
见2006秋81题,如果AL的低四位或高四位的十六进制在A—F之间,则加6H
(11)AAA:加法的Ascii调整指令
如AL寄存器的低四位在十六进制A—F间或进位标志AF=1,则AL寄存器的内容加6,AH寄存器的内容加1,清除AL寄存器的高四位,见2005春81
(12)AND:逻辑与指令,两个操作数都为1则为1
AND AL,0FH
指令执行前: AL=39H
0011 1001 39H
0000 1111 0FH
0000 1001 AL
(13)OR:逻辑或指令,两个操作数有一个为1则为1
(14)XOR:逻辑异或指令,两个操作数必须一个为1,一个为0则为1
(15)SHL:逻辑左移指令
SHL DX,7
指令执行前:DX=00101001 100100
指令执行后: DX=110010000000000
(16)SHR:逻辑右移指令
SHR DX,7
指令执行前:DX=00101001 1001000
指令执行后: DX=0000000001010011
(17)SAL:算术左移指令,与SHL相同
(18)SAR:算数右移指令,与SHR唯一不同的是,移动后符号位保持不变
见2008春81
(19)ROL:循环左移
ROL AL,3
指令执行前:AL=0010 1000
指令执行后:AL=0000 0101
(20)ROR:循环右移
(21)LOOPNZ:
循环指令,循环一次则CX-1,i循环结束条件为CX=0
(22)EQU:
赋值指令,A EQU 5表示将5赋值给A
(23)DB:定义字节,其后的操作数占有一个字节单元
DW:定义字,其后的操作数占有一个字单元
DD:定义双字,其后的操作数占有两个字单元
(24)$:这个符号表示取当前地址
(25) AAM:该指令是用于调整寄存器AL之值, 该值是由二个单BCD码字节用无符号乘指令MUL所得的积。其调整规则如下:
AH ← AL/10(商), AL ← AL(余数)
例如:
MOV AL, 9
MOV BL, 8
MUL BL ;AL = 72D
AAM ;AH = 7, AL = 2