汇编语言常见指令

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档