经过学习,对8086汇编常用指令进行了以下总结:
(1).mov : 移动数据
例如:
mov ax, 8h ;mov 寄存器,常量
mov ax, bx ;mov 寄存器,寄存器
mov ax, ds:[0] ;mov 寄存器,内存单元
mov ds:[0], ax ;mov 内存单元,寄存器
mov ds, ax ;mov 段寄存器,寄存器
mov word ptr ds:[0], 8h ;mov (内存单元大小声明) 内存单元, 常量
sk: mov ax, offset sk ;mov 寄存器,标号偏移地址
mov byte ptr ds:[0], offset sk ;mov 内存单元,标号偏移地址
易错点:
mov ds:[0], ds:[1] ;mov 内存单元,内存单元(非法指令)
mov ds, 8h ;mov 段寄存器,常量(非法指令)
mov ds, es ;mov 段寄存器,段寄存器(非法指令)
mov ds, offset sk ;mov 段寄存器,标号偏移地址(非法指令)
mov [0], ax ;常量偏移地址不可省略默认ds,必须作段地址声明(非法指令)
(2).add:增加数据值,用法同mov类似
(3).sub:减少数据值,用法同mov类似
(4).push:入栈,栈顶指针(sp)=(sp)+2,,并将一个字数据存入sp所指内存单元
例如:
push ax ;push 寄存器
push ds:[0] ;push 内存单元
易错点:
push al ;push 寄存器(高/低)字节(非法指令),必须是一个字,16位数据
push 8h ;push 常量(非法指令)
(5).pop:出栈,读取一个字sp所指的内存单元,并使栈顶指针(sp)=(sp)-2
例如: