汇编语言常见指令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“PTR”操作符:强制类型转换
MOV BYTE PTR [BX], 20H
;1B立即数20H送DS:[BX]
MOV WORD PTR [BX], 20H
;立即数20H送DS:[BX],
;00H送DS:[BX+1]
2.LEA(Load Effective Address)
设:变量X的偏移地址为1020H , (BP)=0020H
执行指令后:
LEA DX, X
LEA BX, [BP]
; 执行后, (DX) = 1020H
; 执行后, (BX) = 0020H
3.地址传送指令LDS,LES
LDS REG16, MEM ; 从存储器取出4B,送入REG16和DS LES REG16, MEM ; 从存储器取出4B,送入REG16和ES 4.符号扩展指令CBW,CWD
CBW ;将AL寄存器容符号位扩展到AH
CWD ;将AX寄存器容符号位扩展到DX
设:(AX)= 8060H,(DX)=1234H
执行下列指令后
CBW
;(AX)= 0060H
设:(AX)= 8060H,(DX)=1234H
执行下列指令后
CWD
;(DX)= 0FFFFH,(AX)= 8060H
5.交换指令XCHG
例如,(AX)= 5678H
执行下面指令后
XCHG AH, AL
;(AX)= 7856H 6.换码指令XLAT
XLAT ;AL←DS: [BX+AL]
表格的首地址事先存放在存逻辑地址DS: BX中,
AL的容是相对于表格的位移量,
把对应存的容取出放在AL寄存器。
7.逻辑运算符
SHR(右移)
SHL(左移)
AND(与)
OR(或)
XOR(异或)
NOT(取反
8.关系运算符
关系运算符用于两个数的比较,结果为“真(-1)”或“假(0)”
GT(>)
GE(>=)
LT(<)
LE(<=)
EQ(=)
NE(≠)
9.地址运算符
SEG 名称取地址表达式所在段的段基址
OFFSET 名称取地址表达式的偏移地址
10.类型操作符
TYPE:
取每个变量的字节数
LENGTH:
取变量定义了多少个
SIZE:
取变量占用的字节总数
11.加法指令
(1)ADD(Addition):加法指令
格式:ADD dest,src
功能:dest ←dest + src
dest(目的操作数):8/16位的寄存器/存储器操作数
src(源操作数):与目的操作数同类型的寄存器/存储器/立即数
例:ADD AX, SI ; AX←(AX)+(SI),16位运算
ADD X, 3 ; X←(X)+3, 运算位数由X的类型确定
ADD [BX], DX ; DS:[BX]←DS:[BX]+DX, 16位运算
说明:
•状态标志CF, OF, ZF, SF, PF, AF按照运算结果被刷新;
(2)ADC(Addition with Carry):带进位的加法指令
格式:ADC dest,src
功能:dest←dest+src+CF
dest(目的操作数):8/16位的寄存器/存储器
src(源操作数):与目的操作数同类型的寄存器/存储器/立即数
说明:
•状态标志CF, OF, ZF, SF, PF, AF按照运算结果被刷新;
•主要用于对数据分段相加时高位的加法运算。
(3)INC(Increment):加一指令
格式:INC dest
功能:dest←dest+1
dest(目的操作数):8/16位的寄存器/存储器
例:
INC X
;X←(X)+1,运算位数由X的类型确定
INC WORD PTR [BX]
;DS:[ BX] ←DS:[ BX]+1,16位运算说明:
•会影响标志OF, ZF, SF, PF, AF,但是CF标志不受影响;
•增量指令常常用来修改计数器和存储器指针的值。
12.减法指令
(1)SUB(Subtract):减法指令
格式:SUB dest,src
功能:dest ← dest-src
dest(目的操作数):8/16位的寄存器/存储器
src(源操作数):与目的操作数同类型的寄存器/存储器/立即数
例:
SUB Y, 20H ;Y←(Y)-20H,运算位数由Y的类型确定
SUB WORD PTR [BP], 5
;SS:[ BP] ←SS:[ BP]-5,16位运算
说明:会影响CF, OF, ZF, SF, PF, AF 标志位。
(2)SBB(Subtract with Borrow):带借位的减法指令
格式:SBB dest,src
功能:dest←dest-src-CF
dest(目的操作数):8/16位的寄存器/存储器
src(源操作数):与dest同类型的寄存器/存储器/立即数
说明:
•会影响CF, OF, ZF, SF, PF, AF 标志位;
•主要用于对一个数据分段相减时高位的减法运算
(3)DEC(Decrement):减一指令
格式:DEC dest
功能:dest←dest-1
dest(目的操作数):8/16位的寄存器/存储器
例:DEC CX ;CX←(CX) -1,16位运算
DEC X ;X←(X)-1,运算位数由X的类型确定
说明:
•会影响标志OF, ZF, SF, PF, AF,但是CF标志不受影响;
•减量指令常常用来修改计数器和存储器指针的值。
(4)NEG(Negate):求补指令(求相反数)
格式:NEG dest
功能:dest←0-dest
dest(目的操作数):8/16位的寄存器/存储器
例:
NEG Z ;Z←-Z,运算位数由Z的类型确定说明:
会影响标志OF, ZF, SF, PF, AF, CF