6.段地址、偏移地址、物理地址、数据段、代码段、堆栈段
1.段地址、偏移地址、物理地址
-
\(物理地址=段地址\times 16+偏移地址\)
-
x16即段地址左移一位
-
例:$ $
段地址 偏移地址 物理地址 2000H 1F60H 21F60H 2100H 0F60H 21F60H 21F0H 0060H 21F60H 21F6H 0000H 21F60H 1F00H 2F60H 21F60H
2.数据段
-
ds寄存器存储数据段地址
-
形如
[60]
的地址表示ds寄存器中地址+60偏移地址
3.代码段
-
代码段由cs:ip寄存器来表示
-
cs寄存器存储代码段的地址,ip寄存器存储偏移地址(可以理解为指针),cs寄存器左移一位加上ip寄存器即为当前要执行的机器码的物理地址
-
jmp指令
-
jmp 1000:3
:表示将cs寄存器改为1000,ip寄存器改为3,实现运行代码的跳转 -
jmp 2
:表示将ip寄存器改为2
4.堆栈段
- 堆栈段由ss:sp寄存器来表示
- ss寄存器存储栈的地址,sp寄存器存储偏移地址,表示栈的指针,指向栈顶
-
push、pop指令
-
push ax:将ax中的数据入栈
- pop ax:出栈并存入ax
-