汇编语言课件(3)

2019-03-16 13:26

汇编语言程序设计

格式:U 或 U 地址 或 U 地址1 地址2 功能:从代码段中指定地址进行反汇编 常用方式:

U 从上次结束的位置进行反汇编 U 地址 从指定地址开始进行反汇编 2、G(执行)命令

格式:G[=地址1][地址2]

功能:从地址1开始执行到地址2,或执行到程序结束。 常用方法:

G 从当前位置执行到程序结束 G 地址 从当前位置执行到指定地址 3、T(跟踪)命令

格式:T[=地址1][数值N]

功能:从地址1起执行N条指令后停止。 常用方法:

T 仅执行当前一条指令 4、D(显示)命令

格式:D[地址]或D[地址1 地址2] 功能:显示指定内存单元的内容 常用方法:

D 地址 从指定地址开始显示内存单元的内容

注:如果地址仅仅是偏移地址,则系统默认为数据段。 5、R(寄存器)命令 格式:R[寄存器名]

功能:显示指定寄存器的值 常用方法:

R 显示所有寄存器的值 6、Q(退出)命令 格式:Q

3.3 80x86的指令系统

学习汇编语言指令应该把握以下几点: ① 汇编指令的共性 ·双操作数指令中,两个操作数不能同为存储单元,也不能同为段寄存器,目的操作数不能为立即数。 ·单操作数指令中,操作数可以是除立即数以外的任何寻址方式 ② 指令对标志寄存器的影响

③ 各指令的格式、使用方法和注意事项 1、传送指令

- 10 -

汇编语言程序设计

1)通用传送指令

包括:MOV、PUSH、POP、XCHG

① MOV 最基本的传送指令 格式:MOV DST,SRC 执行的操作:(DST)←(SRC) 说明:

? 目的操作数不能为CS和IP

? 传送的数据可以是8位或16位,取决于操作数的形式 ? 源操作数的长度应该小于或等于目的操作数的长度 ? 所有通用传送指令都不改变标志位 例如:

MOV AX,BX √ MOV AX,[BX] √ MOV [AX],[0000H]× MOV VALUE,24H √ MOV CS,1243H ×

② PUSH、POP 堆栈操作指令 ·PUSH 进栈指令 格式:PUSH SRC 执行的操作: (SP)←(SP)-2 ((SP)+1,(SP))←(SRC) ·POP出栈指令 格式:POP DST 执行的操作:

(DST)←((SP)+1,(SP)) (SP)←(SP)+2 说明:

? PUSH和POP是字操作

? 操作数为除立即数以外的任何形式 ? POP指令不能用CS

? 常用于对寄存器值的保存和恢复

③ 交换指令XCHG

格式:XCHG OPR1,OPR2 操作:(OPR1)←→(OPR2) 说明:

? OPR表示操作数

? 两操作数中至少有一个为寄存器,但不能为段寄存器或IP

- 11 -

汇编语言程序设计

? 允许字/字节操作 如:

XCHG AX,BX √ XCHG AX,[0011H] √ XCHG BX,1 × XCHG BX,CS ×

2)累加器专用传送指令 包括:IN OUT XLAT

这组指令只限于使用AX或AL传送信息。用于与外设直接的数据传递。 ① IN输入指令 长格式:

IN AL,PORT(字节) IN AX,PORT(字) 执行的操作:

(AL)←(PORT)(字节) (AX)←(PORT+1,PORT)(字) 短格式:

IN AL,DX(字节) IN AX,DX(字) 执行的操作: (AL)←((DX))(字节) (AX)←((DX)+1,(DX))(字) ② OUT输入指令 长格式:

OUT PORT,AL(字节) OUT PORT,AX(字) 执行的操作:

(PORT)←(AL)(字节) (PORT+1,PORT)←(AX)(字) 短格式:

OUT DX,AL(字节) OUT DX,AX(字) 执行的操作: ((DX))←(AL)(字节) ((DX)+1,(DX))←(AX)(字) 说明:

? IN指令:I/O→AL或AX

? OUT指令:AL或AX → I/O

? I/O设备中前256个端口(0-FFH)端口号可使用长格式直接在指令中指定。

- 12 -

汇编语言程序设计

? 端口号>=FFH时,只能用短格式。 例如:写出下列指令:

? 把端口34H的字数据送到存储单元str中。

IN AX,34H

MOV STR,AX 或者:

MOV DX,34H IN AX,DX MOV STR,AX

? 把端口2AFH的字节数据送到存储单元str1中。

MOV DX,2AFH IN AX,DX

MOV STR1,AX

? 把存储单元STR中的字数据送到端口28H中。

MOV STR,AX OUT 28H, AX 或:

MOV STR,AX MOV DX,28H OUT DX,AX

? 把存储单元STR1中的字节数据送到端口37AH中。

MOV STR1,AX MOV DX,37AH OUT DX,AX

③换码指令XLAT(略)

3)地址传送指令

包括:LEA、LDS、LES、LSS ① LEA取有效地址指令 格式:LEA REG,SRC 操作:(REG)←SRC 注:REG为寄存器

例如:设(BX)=1200H,(SI)=1000H,(DS)=3000H,(32224H)=12H,(32225H)=34H,试比较以下两条指令的执行结果: LEA BX,[BX+SI+0024H] MOV BX,[BX+SI+0024H] ② LDS地址送DS和寄存器指令 格式:LDS REG,SRC 操作:

(REG)←(SRC) (DS)←(SRC+2) 如:

- 13 -

汇编语言程序设计

② LES地址送DS和寄存器指令 格式:LES REG,SRC 操作:

(REG)←(SRC) (ES)←(SRC+2) ③ LSS地址送DS和寄存器指令 格式:LSS REG,SRC 操作:

(REG)←(SRC) (SS)←(SRC+2)

说明: ·该组指令的操作数可以使用16位寄存器,但是不能使用段寄存器 ·源操作数可以是除立即数和寄存器以外的任何一种存储器寻址方式 ·不影响标志位

4)标志传送指令

包括:LAHF、SAHF、PUSHF、POPF ① LAHF读取标志指令(load ah with flags) 格式:LAHF

操作:(AH)←(标志寄存器FLAGS的低字节) ② SAHF设置标志指令(store ah into flags) 格式:SAHF

操作:(FLAGS的低字节)←(AH) ③ 对标志寄存器的入栈和出栈的指令 格式:PUSHF 操作:

(SP)←(SP)-2

((SP)+1,(SP))←(FLAG)

- 14 -


汇编语言课件(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅谈待定系数法在中学数学中的应用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: