你们老师在讲解8086的分段管理方式或者段SEGMENT伪指令时提该为题的,
实际上的答案很简单,就是我们在选择段基地址时,该地址的低4位一定为0,这样两个条件都满足(也就是既符合PARA的要求也符合BYTE的要求)追问段基址的低4位为什么一定为0,而BYTE的低4位为什么可以不为0呢? 回答段基址的低4位为什么一定为0:简单的说是规定,详细说是因为8086中寄存器只能记忆16bit,而8086的RAM存储器为1M,它的地址是20bit,规定低4位为0,这样只要记忆高16bit就可以恢复基地址了。
而BYTE的低4位为什么可以不为0呢:严格的说BYTE对地址没有如何要求,如果规定是BYTE类型段的话,那就是说任何地址都可以做该段的基地址。 追问如何用宏汇编解决这个看似矛盾实则不矛盾的问题呢 回答我们在选择段基地址时,该地址的低4位一定为0,这样两个条件都满足(也就是既符合PARA的要求也符合BYTE的要求)