dx 汇编dec_汇编语言——80x86指令系统(一)

80x86指令系统

指令格式

1.指令的书写格式

标号: 指令助记符 操作数  ; 注释

2.操作数的3种形式:

立即操作数:指令的操作数是立即数,并直接出现在指令中。

寄存器操作数:操作数是寄存器的值,指令中使用寄存器名。

内存操作数:操作数是某个内存单元的值,指令中给出有效地址EA,段地址在某个段寄存器中。

8086指令的操作数形式

1.立即数: 8位或16位立即数。

2.寄存器操作数:

8位/16位通用寄存器和段寄存器(除了FS和GS)。

3.内存操作数

包括下列几种形式。

Variable 或 [Variable]

[reg]

disp[reg]

[base][index]

disp[base][index]

?***说明:

Variable是变量名或变量名 ± 整数表达式。

reg为BX、BP、SI、DI。

disp可以是常量或变量,汇编后为一个常数,若是变量,则取其偏移地址。

base为BX或BP,index为SI或DI。

有效地址为各项之和。如disp[base][index]形式,EA = base + index + disp。

若使用了BP,则隐含段地址在SS,否则在DS。

当段地址不在隐含的段寄存器时,可使用段超越前缀,形式为:段寄存器名:

32位CPU扩展的操作数形式

1.立即数: 32位立即数。

2.寄存器操作数: 32位通用寄存器以及FS和GS。

3.内存操作数

包括下列几种形式。

[base]

disp[base]

[base][index]

disp[base][index]

[index*n]

disp[index*n]

[base][index*n]

disp[base][index*n]

***说明:

base、index为任一32位通用寄存器(index不能取ESP)。

n为比例因子,取1、2、4或8。

若包含base且base为EBP或ESP,则隐含段地址在SS;否则,隐含段地址在DS。

若在16位CPU上编程,则不能使用这些寻址方式。

指令系统

为了描述方便,采用下列符号约定:

dest —  目的操作数

src —  源操作数

oprdn —  第n个操作数,如oprd1, oprd2, oprd3

=  —  赋值

/ —  或者

reg8 —  8位通用寄存器AH/AL/BH/BL/CH/CL/DH/DL

reg16 —  16位通用寄存器AX/BX/CX/DX/SI/DI/BP/SP

reg32 —  32位通用寄存器EAX/EBX/ECX/EDX/ESI/EDI/EBP/ESP

reg —  reg8/reg16/reg32

seg —  段寄存器CS/DS/SS/ES/FS/GS

mem8 —  8位内存操作数

mem16 —  16位内存操作数

mem32 —  32位内存操作数

mem —  mem8/mem16/mem32

mem64 —  64位内存操作数

imm8 —  8位立即数

imm16 —  16位立即数

imm32 —  32位立即数

imm —  imm8/imm16/imm32

数据传送指令

1. MOV ( Move ):传送

一般形式:

MOV dest, src ; dest = src。将源操作数src复制到目的操作数dest,src不变。

语法格式:

MOV reg/mem/seg, reg

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值