主存储器:

8060中ASCII码编码:
-
标准ASCII码用7位二进制编码,有128个
-
不可显示的控制字符:前32个和最后一个编码
回车CR:0DH 换行LF:0AH 响铃BEL:07H -
可显示和打印的字符:20H开始的95个编码
数码0~9:30H~39H
大写字母A~Z:41H~5AH
小写字母a~z:61H~7AH
空格:20H
'$':24H -
扩展ASCII码:最高D7位为1,表达制表符(八位)
寄存器:
-
CS:IP存放待执行指令的逻辑地址
-
例如:CS=7FFFH,IP=0000H
即CS:IP=7FFFH:0000H,其对应的物理地址为7FFF0H。
-
-
DS存放待访问数据段的段地址
-
SS存放待访问堆栈段的段地址
-
ES存放待访问附加数据段的段地址
各个逻辑段的功能分配:
-
程序的指令序列必须安排在代码段(CS:IP)
-
程序使用的堆栈一定在堆栈段(SS)
-
程序中的数据默认是安排在数据段(DS),也经常安排在附加段,尤其是串操作的目的区必须是附加段(ES)
-
数据的存放比较灵活,实际上可以存放在任何一种逻辑段中
段超越前缀指令:
-
没有指明时,一般的数据访问在DS段;使用BP访问主存,则在SS段
-
默认的情况允许改变,需要使用段超越前缀指令;8086指令系统中有4个:
-
CS: ;代码段超越,使用代码段的数据
-
SS: ;堆栈段超越,使用堆栈段的数据
-
DS: ;数据段超越,使用数据段的数据
-
ES: ;附加段超越,使用附加段的数据
-

汇编语句中操作数的寻址方式:
-
指令中的操作数:
可以是一个具体的数值
可以是存放数据的寄存器
或指明数据在主存位置的存储器地址 -
语句中的操作数:
对应立即数寻址
对应寄存器寻址
对应存储器寻址
寄存器寻址方式:
-
操作数存放在CPU的内部寄存器reg中:
-
8位寄存器r8:
AH、AL、BH、BL、CH、CL、DH、DL -
16位寄存器r16:
AX、BX、CX、DX、SI、DI、BP、SP -
4个段寄存器seg:
CS、DS、SS、ES -
MOV AX,1234H ;AX←1234H
MOV BX,AX ;BX←AX
-
存储器寻址方式:
-
指令中给出操作数的主存地址信息(偏移地址,称之为有效地址EA),而段地址在默认的或用段超越前缀指定的段寄存器中
-
8086设计了多种存储器寻址方式
-
直接寻址方式
-
寄存器间接寻址方式
-
寄存器相对寻址方式
-
基址变址寻址方式
-
相对基址变址寻址方式
-
-
|
寻址方式 |
涉及寄存器 |
有效地址EA计算方法 |
操作数逻辑地址 |
是否允许段超越 |
EA模64K(回绕) |
|
直接寻址 |
无 |
直接给出EA |
DS:EA |
是 |
无 |
|
寄存器间接寻址 |
BX/BP/SI/DI |
EA←BX/BP/SI/DI |
DS:BXDS:SIDS:DISS:BP |
是 |
无 |
|
相对寄存器寻址 |
BX/BP/SI/DI |
EA←BX/BP/SI/DI+8/16位位移量 |
DS:BX+8/16位位移量DS:SI+8/16位位移量DS:DI+8/16位位移量SS:BP+8/16位位移量 |
是 |
是 |
|
基址变址寻址 |
{BX/BP},{SI/DI} |
EA←BX/BP+SI/DI |
DS:BX+SIDS:BX+DISS:BP+SISS:BP+DI |
是 |
是 |
|
相对基址变址寻址 |
{BX/BP},{SI/DI} |
EA←BX/BP+SI/DI+8/16位位移量 |
DS:BX+SI+8/16位位移量DS:BX+DI+8/16位位移量SS:BP+SI+8/16位位移量SS:BP+DI+8/16位位移量 |
是 |
是 |
回绕:指EA计算超出0~65535范围时的处理方式。
当EA<0时,加上65536; 当EA>65535时,减去65536。
9371

被折叠的 条评论
为什么被折叠?



