1.字单元的概念;
2.关于内存编号的概念;
3.8086不支持将数据直接写入段寄存器的操作,若要将一个数据写到DS中,则必须用通用寄存器做中转,例如:
mov bx,1000H
mov ds,bx //将1000H写到DS中去。
4.DS和[偏移地址]指示内存中的数据位置;
5.add,mov,sub指令操作的基本命令:
add 寄存器 , 数据
add 寄存器,寄存器
add 内存单元,寄存器
add 寄存器,内存单元
mov 段寄存器,内存单元
mov 段寄存器,寄存器
mov 内存单元,寄存器
....//没有 add ds,ax等此类命令。
6.数据段:长度为N(N小于等于64KB)地址连续,起始地址为16倍数的内存单元当作一个段来使用。按照定义,一个段最小应该为16个字节,最大不能大于64KB,而且起始地址必须是16的倍数;
7.入栈和出栈:(任意时刻,SS:SP指向栈顶元素),例如:
push ax 的执行,分以下两步执行:
(1)sp=sp-2.ss:sp指向当前栈顶前面的单元,以当前栈顶前面的单元为新的栈顶;
(2)将ax中的内容送入SS:sp指向的内存单元处,SS:SP此时指向新的栈顶。
pop ax的执行刚好和push ax相反,由以下两步完成:
(1)将SS:SP指向的内存单元中的数据送入AX中;
(2)SP=SP+2,ss:sp指向当前栈顶下面的单元,以当前栈顶下面的单元为新的栈顶。
8.关于空栈和满栈情况下的SP指向情况(空栈sp=xxxE,满栈sp=0)

检测题3.1
1.问题忽略,直接答案:
mov ax,1
mov ds,ax
mov ax,[0000] ax=2662
mov bx,[0001] bx=e626
mov ax,bx ax=e626
mov ax,[0000] ax=2662
mov bx,[0002] bx=d6e6
add ax,bx ax=fd48
add ax,[0004] ax=2c14
mov ax,0 ax=0000
mov al,[0002] ax=0026
mov bx,0 bx=0000
mov bl,[000c] bx=0026
add al,bl ax=005c
(2).题目忽略,直接答案:
mov ax,6622 ax=6622
jmp 0ff0:0100 cs=00f0,ip=0100
mov ds,2000h ax=2000
mov dx,ax ds=2000
mov ax,[0008] ax=c389
mov ax,[0002] ax=ea66
数据和程序没有区别。

检测点3.2
1.mov ax,1000h
mov dx,ax
mov bx,2000h
mov ss,bx
mov sp,0010h
push [0]
push [2]
push [4]
push [6]
push [8]
push [a]
push [c]
push [e]
(2) mov ax,2000h
mov ds,ax
mov bx,1000h
mov ss,bx
mov sp,0
pop [e]
pop [c]
pop [a]
pop [8]
pop [6]
pop [4]
pop [2]
pop [0]