江苏三级偏软常考汇编指令 |
汇编语言常用指令 (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 1 CF 000000000001000 DX (6) INC: 加1指令 INC 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=39H 0011 1001 39H 0000 1111 0FH 0000 1001 (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=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 MOV BL, 8 MUL BL ; AAM ;AH = 7, |