Assembly 如何在程序集8086中为给定的物理地址设置值?

Assembly 如何在程序集8086中为给定的物理地址设置值?,assembly,x86-16,real-mode,Assembly,X86 16,Real Mode,我得到了物理地址5E3DAh,我应该在这个物理地址中设置值1。 我知道8086寄存器不能处理20位地址,所以我的问题是如何到达那个特定地址?你们知道段:偏移地址吗?我可以。它有20位的地址空间。您可以将段寄存器与常规寄存器结合使用。5xxx进入段寄存器,xxxA进入常规寄存器。xxx(中间三个十六进制数字)的位置由您选择。对于要使用的指令和寻址模式,可以使用默认段,也可以使用带段覆盖前缀的备用段寄存器。@MichaelPetch:这看起来像是一个答案;即使它相对较短,你也可以这样发布。为了寻址2

我得到了物理地址5E3DAh,我应该在这个物理地址中设置值1。
我知道8086寄存器不能处理20位地址,所以我的问题是如何到达那个特定地址?

你们知道段:偏移地址吗?我可以。它有20位的地址空间。您可以将段寄存器与常规寄存器结合使用。5xxx进入段寄存器,xxxA进入常规寄存器。xxx(中间三个十六进制数字)的位置由您选择。对于要使用的指令和寻址模式,可以使用默认段,也可以使用带段覆盖前缀的备用段寄存器。@MichaelPetch:这看起来像是一个答案;即使它相对较短,你也可以这样发布。为了寻址20位,英特尔设计了实模式寻址。结合偏移量的段可以寻址20位物理地址。如果给定一个20位的物理地址,您可以将前4个半字节(十六进制数字)放入段寄存器中,并将下半字节(最低十六进制数字)用作偏移量。这样的代码应该可以工作:mov-ax,0x5e3dhmov-ds,axmov-byte-ptr-ds:[0Ah],10x5E3D:0x000A表示物理地址0x5E3DA。(0x5E3D)