以十六进制字节计算大小

时间:2011-09-22 05:09:58

标签: size hex byte

计算代码段的十六进制字节大小的正确方法是什么。我得到了:

IP = 0848    CS = 1488    DS = 1808   SS = 1C80    ES = 1F88

我正在研究的练习练习询问代码段的大小(以十六进制字节为单位)并给出以下选择:

A. 3800    B. 1488    C. 0830    D. 0380    E. none of the above

正确答案是A. 3800,但我不知道如何计算它。

1 个答案:

答案 0 :(得分:1)

如何计算长度:

  • 注意CS。找到最接近它的段寄存器,但更大。
  • 取两者之间的差值,然后乘以0x10(读:大写0)。

在您的示例中,DS最接近。 1808 - 1488 == 380.而380 x 10 = 3800。

顺便说一下,这只适用于8086和其他类似的骨头CPU,以及x86上的实模式。在x86上的保护模式下(也就是说,除非您正在编写引导扇区或简单的DOS程序),段寄存器的值与段的大小几乎没有关系,因此上面的内容很简单不适用。