关于8086 的寻址问题

2024-11-19 05:24:05
推荐回答(3个)
回答1:

建议你看一下80x86汇编的基础,了解寻址方式,除了段地址寄存器,还有通用寄存器等其他寄存器
如把ES段,地址偏移200的数据时读到AX中,可以
mov bx,200
mov ax,ES:[bx]

8086是非常老的指令集了,CS,DS,ES,SS段寄存器可以批向一个段(COM文件运行时,默认在一个段中)也可以批向不同段,原来是PUSH和POP指令,改变段地址
MOV AX,新段地址
PUSH AX
POP ES
后来应该在80x86指令中直接给段地址寄存器付值

MOV ES,BX
mov SS,0x5678

回答2:

每一个地址空间都要有一组编码,这组编码就是所谓的地址。假设只有一根地址线,那么这跟地址线上只能是高电平或者低电平才可以被微机识别。高电平为1,低电平为0。那么这一根地址线可以识别两个地址单元。同理,两根可识别4个地址单元。也就是2^n(2的n次方)。2的20次方就是1024=1M。又因为一般8086的存储器单元由8个位组成,所以一个单元为8bit=1bytes=1字节。综上所述,20根地址线可表示1M字节

回答3:

调试啊debug里面 -t 分步执行,就可以看到执行每一步时各个寄存器中的内容了