[英]Assembly: Segment register & offset register
段寄存器指向一个16字节的内存块......
这就是混乱开始的地方。 段寄存器指向65536字节的存储器块,偏移寄存器指示要添加到该65536字节块的起始位置的字节数。 在16字节块的开头添加字偏移是没有意义的!
这些64KB块在内存中重叠很多。 它们的起始地址仅相差16个字节! 您可以将这些64KB块视为形成数组,然后段寄存器包含的是其元素的基于零的索引。
因此,这些块之间的间距是您所询问的10H的真正含义。
为了得到存储器位置的线性(实际)地址,我们需要将段寄存器中的值乘以16(用十六进制表示法表示为10h),然后将偏移量加到它上面。
这里的关键词是“段寄存器指向16字节的存储器块”。 如果将整个存储器排列为16字节块,则段寄存器(例如DS)将包含块的编号。
要从段寄存器的值到线性地址,必须乘以16,这与十六进制数10相同,后者通常写为10H。
计算段的起始地址后,添加偏移寄存器。
是的,1275H是十六进制数,就是“H”表示的数字。 它对应于4725十进制数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.