疯狂的石头qsy 发表于 2023-4-28 13:01:52

王爽老师汇编里面,段大小100H怎么来的呢?

各位师兄师姐,江湖救急:这个大小为100H是怎么来的呢?

isdkz 发表于 2023-4-28 13:06:55

首先,我们需要了解16进制(十六进制)数制。在16进制中,每位数的取值范围是0-15,分别用0-9和A-F表示。16进制数的计算与10进制类似,但是基数是16。例如,十六进制数100H表示的十进制数为:

1 * (16^2) + 0 * (16^1) + 0 * (16^0) = 256。

在你提到的这个例子中,我们将内存划分成不同的段,每个段有一个基础地址和一个偏移地址。在这里,段地址是用16进制表示的。所以,段地址1000H实际上等于:

1 * (16^3) + 0 * (16^2) + 0 * (16^1) + 0 * (16^0) = 4096。

然后,我们需要计算段的大小。大小为100H,转换为十进制为:

1 * (16^2) + 0 * (16^1) + 0 * (16^0) = 256。

这个段的大小为100H,表示它包含256个内存单元。所以,基础地址10000H到100FFH的内存单元组成一个段,大小为100H,即256个内存单元。

疯狂的石头qsy 发表于 2023-4-28 15:30:59

isdkz 发表于 2023-4-28 13:06
首先,我们需要了解16进制(十六进制)数制。在16进制中,每位数的取值范围是0-15,分别用0-9和A-F表示。16 ...

谢谢,您的回复,但是我还是没有明白,这个100H是怎么来的?是什么东西相减出来的吗?

isdkz 发表于 2023-4-28 15:38:15

疯狂的石头qsy 发表于 2023-4-28 15:30
谢谢,您的回复,但是我还是没有明白,这个100H是怎么来的?是什么东西相减出来的吗?

100FFH - 10000H + 1 得来的,

100FFH - 10000H = FFH            FFH + 1 = 100H

如果你要问为什么要加 1,因为100FFH - 10000H 是 10000H 与 100FFH 的距离,从 10000H 到 100FFH 有多少个单元还要加上 10000H 本身这个单元

比如从 1 数到 10 一共有 10 个单元,不用想就知道,这个结果用数学来表示的话是 10 - 1 + 1

疯狂的石头qsy 发表于 2023-4-28 15:40:12

isdkz 发表于 2023-4-28 13:06
首先,我们需要了解16进制(十六进制)数制。在16进制中,每位数的取值范围是0-15,分别用0-9和A-F表示。16 ...

谢谢,您的回复,但是,我不明白的是100H是怎么来的?我用100FFH-10000H,减出来是FFH,感觉不对

isdkz 发表于 2023-4-28 15:42:21

疯狂的石头qsy 发表于 2023-4-28 15:40
谢谢,您的回复,但是,我不明白的是100H是怎么来的?我用100FFH-10000H,减出来是FFH,感觉不对

100FFH - 10000H 的结果是 FFH 怎么不对了?

    100FFH
- 10000H
----------------
= 100FFH

首先最后面那个H不是数字的一部分,它只是表示这是一个十六进制(hex)数,所以 H 不参与运算

疯狂的石头qsy 发表于 2023-4-28 15:43:35

谢谢您,您太厉害了,前辈,请收下我的膝盖{:9_232:}
页: [1]
查看完整版本: 王爽老师汇编里面,段大小100H怎么来的呢?