(微机原理)汇编指令汇总

目录

数据传送类指令

MOV 操作数1,操作数2

XCHG 操作数1,操作数2

XLAT

PUSH 操作数

POP 操作数

LEA 16reg,mem

LDS 16reg,mem

LES 16reg,mem

I/O数据传输指令

标志传送


数据传送类指令

数据传送指令是最基本最重要的一类指令,它能把数据从一个位置传送到另一个位置,除了标志寄存器传送指令,其他指令都不改变标志寄存器的值。

通用数据传送MOV字节或字的传送指令
PUSH入栈
POP出栈
XCHG字节或字的交换指令
XLAT字节的查表指令
目的地址传送LEA有效地址的传送
LDS偏移地址及其数据段段地址传送
LES偏移地址及其附加段段地址传送
I/O传送INI/O操作的输入
OUTI/O操作的输出
标志传送PUSHF标志寄存器入栈
POPF出栈至标志寄存器
LAHFSF、ZF、AF、PF、CF对位传送到AH
SAHF

AH对位传送到SF、ZF、AF、PF、CF

MOV 操作数1,操作数2

该指令将数据从后者传到前者,操作数可以是立即数、寄存器、存储器,必须遵守下面的传送规则。

 1、传送的数据长度如何确定?(字操作与字节操作由谁决定?)

  1. 汇编语言的操作符显式指明
    mov byte ptr[bx],255;说明是字节操作
    mov word ptr[bx],255;说明是字操作
  2. 当指令中有寄存器时,由寄存器的大小决定。

2、注意两个操作数类型要一致。

XCHG 操作数1,操作数2

该指令交换两个位置的数据,寄存器与寄存器交换,寄存器与存储器交换。

注意:

  1. 存储器与存储器之间不能交换
  2. 两个操作数的类型要一致,都是8位或都是16位
  3. 顺序无关
mov ax,1199h            ;ax=1199h
xchg ah,al              ;ax=9911h
                        ;等同于 xchg al,ah
mov wvar,5566h	        ;wvar是一个字型变量
xchg ax,wvar 	        ;ax=5566h,wvar=9911h
                        ;等同于 xchg wvar,ax 
xchg al,byte ptr wvar+1 ;ax=5599h,wvar=6611h
	                    ;“byte ptr wvar+1”强制为字节量,只取高字节与AL类型交换,否则数据类型不匹配

XLAT

该指令没有操作数,执行后将 ds:[bx+al]中的数据传送到al寄存器中。

将bx视为一个字节型表格的初始位置,al视为表格的序号,将该行表格数据传送到al中。也称之为查表指令或字节翻译指令。使用前,要提前将bx,al指向目标。

PUSH 操作数

入栈指令,操作数可以是寄存器和存储器。

ss:sp指向栈顶,入栈时,sp-2,数据入栈,低字节对应低位,高字节对应高位。

POP 操作数

出栈指令,操作数可以是寄存器和存储器

ss:sp指向栈顶,出栈时,数据传输到指定位置,sp+2.

注意:

  1. 栈操作都是字操作
  2. 对于cs寄存器,可以push,不能pop

LEA 16reg,mem

将mem的偏移地址传到16位的寄存器中。

LDS 16reg,mem

从mem存储单元开始,将前两个字节传到16位寄存器中,后两个字节传到ds中。

LES 16reg,mem

从mem存储单元开始,将前两个字节传到16位寄存器中,后两个字节传到es中。

I/O数据传输指令

IN AX/AL,8位端口号/dx

将端口数据传至ax或al中

OUT 8位端口号/dx,AX/AL

将ax/al中的数据输出到端口

注意:

  1. 数据的传输方向。in和out是相对cpu而言的。
  2. 当端口号小于8位时用立即数表示,当端口号大于8位小于16位时存入dx中使用。
  3. ax/al取决于传输数据的大小

标志传送

PUSHF

将16位标志寄存器的内容入栈,ss:sp指向栈顶。

POPF

数据出栈存入16位标志寄存器,ss:sp指向栈顶。

LAHF

将标志寄存器的低8位传入ah中

SAHF

将ah中的数据传入标志寄存器的低8位。

。。。。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值