3 寄存器(内存访问)
-
内存中字的存储
内存单元是一个字节,一个字要用两个连续内存单元存放。
字单元:存放一个字型数据(16位)的内存单元,两个地址连续的内存单元组成,高地址存放高位字节,低地址存放低位字节。
-
DS 和 [address]
![]()
前面使用mov, 可以完成两种传送(1)数据直接送入寄存器(2)寄存器中的内容送入另一个寄存器
从内存单元送到寄存器呢?
mov 寄存器名 内存单元地址 [….]表示一个内存单元中的偏移地址
DS是内存单元中的段地址
先把1000H 放入DX, 再用mov ax [0] 完成传送
8086不支持直接将数据送入DX,只能用一个寄存器来中转
mov ds ,1000H 是非法的
将AL 的数据送入 10000H
mov [0], al
-
字的传送
8086是16位结构,有16根数据线,可以一次性传送16位数据。
![]()
![]()
![]()
![]()
-
mov、add、sub 指令
![]()
mov 寄存器 段寄存器
mov 内存单元 段寄存器
mov 段寄存器 内存单元
![]()
-
数据段
![]()
-
栈
任意时刻SS::SP指向栈顶元素
push ax 分为两步
(1)SP = SP - 2
(2)将AX中的内容送入SS::SP指向的内存单元
![]()
![]()
pop 指令相反
(1)SS::SP指向的内存单元送入AX
(2)SP = SP +2
![]()
-
栈顶超界问题
8086不保证 自己小心
-
push pop
![]()
![]()
![]()
![]()
















浙公网安备 33010602011771号