8086指令用法
来源:互联网 发布:datax导入数据到hive 编辑:程序博客网 时间:2024/06/13 09:00
名词:存贮器(memory uint,MEM)、寄存器(register,REG)、输入输出端口(input output port,IO)、端口(port)、立即数(Immediate,IMM)、目标操作数(target operand,TOPER)、源操作数(source operand,SOPER)。
8086寄存器(共有14个,均16位):
通用寄存器:
AX,BX,CX,DX 称作为数据寄存器:
AX (Accumulator):累加寄存器,也称之为累加器,高8位为AH,低8位为AL;
BX (Base):基地址寄存器,高8位为BH,低8位为BL;
CX (Count):计数器寄存器,高8位为CH,低8位为CL;
DX (Data):数据寄存器,高8位为DH,低8位为DL;
SP 和 BP 又称作为指针寄存器:
SP (Stack Pointer):堆栈指针寄存器;
BP (Base Pointer):基指针寄存器;
SI 和 DI 又称作为变址寄存器:
SI (Source Index):源变址寄存器;
DI (Destination Index):目的变址寄存器;
控制寄存器:
IP (Instruction Pointer):指令指针寄存器;
FLAG:标志寄存器;
段寄存器:
CS (Code Segment):代码段寄存器;
DS (Data Segment):数据段寄存器;
SS (Stack Segment):堆栈段寄存器;
ES (Extra Segment):附加段寄存器;
各种指令用法:
一、数据传输指令
MOV(Move)
作用:通用数据传输指令,此指令的目标操作数和源操作数的字节数必须相同,否则会出错。
用法:MOV REG/MEM,REG/MEM/IMM
举例:
mov ax,02h ;mov REG,IMMmov bx,ax ;mov REG,REGmov ax,[023h] ;mov REG,MEMmov bx,[bp+1]mov cx,[si]mov [bp],9 ;mov MEM,IMMmov [bp],ax ;mov MEM,REGmov ah,al ;8位的
PUSH(Push onto the stack)
作用:把字压入堆栈中(执行时,SP-1放高地址字节,SP-2放低地址字节,SP<-SP-2)。
用法:PUSH REG/MEM/IMM
举例:
push [bp]push axpush 0fh
POP(Pop from the stack)
作用:把字从堆栈中弹出(执行时,SP<-SP+2)。
用法:POP REG/MEM
举例:
push 0fh pop ax
PUSHA(Push all onto the stack)
作用:把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈中(执行时,执行时每放入一个SP减2一次)。
用法:PUSHA
举例:略
POPA(Pop all from the stack)
作用:把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈(执行时,执行时每放入一个SP加2一次)。
用法:PUSHA
举例:略
XCHG(Exchange)
作用:交换字或字节,至少有一个操作数为寄存器,段寄存器不可作为操作数。
用法:XCHG REG,REG
举例:
mov ax,1mov bx,2xchg ax,bx
XLAT(Translate)
作用:字节查表转换, BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即 0-FFH); 返回 AL 为查表结果. ( AL<-[BX+AL])
用法:XLAT
举例:
data segment string db 'nice day'data endscode segment assume ds:data,cs:code start: mov ax,data mov ds,ax ;find lea bx,string mov al,5 xlat ;output mov dl,al mov ah,02h int 21h ;end mov ah,4ch int 21hcode ends end start
推荐阅读:
1、8086 CPU 寄存器简介
- 8086指令用法
- #pragma指令用法
- SSI指令用法
- sudo 指令的用法
- chomd指令用法
- SSI指令用法
- #pragma指令用法
- jmp指令用法
- Mysql指令: show用法
- FFmpeg 指令用法
- jmp指令用法
- FFmpeg 指令用法
- using 指令的用法
- sudo指令用法
- FFmpeg 指令用法
- DOS debug指令用法
- nc指令用法
- jmp 指令用法
- Android深入浅出之Audio 第一部分 AudioTrack分析
- jQuery Ajax 实例演示
- 5309 Product
- jquery mobile 页面间的传递参数
- 浅谈从源代码文件到二进制可执行文件的过程
- 8086指令用法
- Android深入浅出之Audio第三部分Audio Policy[1]
- MySQL问题解决:-bash: mysql: command not found
- Android开发:实现带图片和checkbox的listview
- 5310 OverFlow
- 《C语言参悟之旅》 -读书笔记(一)
- 本来:权限修饰符只对实例方法生效(下面解释),但是这里类方法也受限制
- Hibernate中对象的三种状态
- 三角形的面积问题