学习汇编其实就是学习怎样操纵寄存器
8086 寄存器分为以下类:
1.通用寄存器 ax,bx,cx,dx
2.段寄存器 cs,ds,es,ss
3.指针寄存器 ip, sp
4.其他si,di,bp,psw
和程序代码相关的有 CPU通过访问cs:ip来获得要执行的代码
通过访问ds:数据 来访问数据
通过 es:sp来访问堆栈
掌握了以上基础知识就可以编写程序了,有个工具叫debug 可以用来调试程序
常用命令如下:
r ---查看或修改寄存器状态
d---显示内存
t---单步执行命令
g---多步执行
e---修改内存中的内容
a---以汇编指令格式在内存中写入一条机器指令
u---将机器指令翻译成汇编指令
下面是一个程序将内存ffff:0-ffff:b中的数据复制到0:200-0:20b(此段内存一般不会被占用)
ASSUME CS:CODE
CODE SEGMENT
MOV AX,0FFFFH
MOV DS,AX
MOV BX,0
MOV CX,12
MOV AX,0 ;或者mov ax,0020h
MOV ES,AX
S:
MOV AL,[BX]
MOV ES:[BX+512],AL ;200H=512 mov es:[bx],al对应上面ax,0020h
INC BX
LOOP S
MOV AH,4CH
INT 21H
CODE ENDS
END