以8086为例
1.寄存器
通用寄存器(存放数据)
- AX -> AH AL
- BX
- CX -> 一般用来控制loop
DX
- si di 与bx功能相近
- ds 一般与 bx 配合作为数据段
段寄存器
地址计算方式: IP*16 + CS (20位)
指令地址:
- CS 段代码寄存器
- IP 指令寄存器
内存地址:
- ds寄存器 保存段地址
1
2
3
mov bx,1000h
mov ds,bx
mov [0], al
栈地址:
- 段寄存器 SS
- 寄存器:SP SS:SP 指向栈顶元素
2.指令
mov
add
jump
jump 2AE3:3 -> CS = 2AE3H IP = 0003H 指令地址:2AE33H
jmp ax -> mov IP,ax
inc inc bx -> bx+1
add 按位进行逻辑与运算
or 逻辑或运算
3.debuger
linux平台 安装dosemu模拟器
sudo apt-get install dosemu
退出命令为 exitemu
退出debug
q
进入
dosemu
3.1 debug命令
- R 查看改变寄存器内容
1
r ax // 改变ax寄存器内容
D 查看内存内容
E 改写内存内容
U 命令 翻译汇编
T 执行内存中的机器码
A 指令 直接写汇编