Assembly 按下4个字节后计算十六进制地址?我不知道';我不明白这个计算是怎么做的

Assembly 按下4个字节后计算十六进制地址?我不知道';我不明白这个计算是怎么做的,assembly,binary,Assembly,Binary,这是幻灯片 所以我们的堆栈是十六进制8000(32768),我们从中减去4个字节以允许 被推动的元素 十六进制8000分钟4字节如何产生7FFC?我知道7FFC是32764,也就是4字节减去32768,但那是因为我用计算器检查过。幻灯片中暗示的方法是什么?另外,其余的值进入什么地址 谢谢。以16为基数计算 0x7FF8 0x7FF9 0x7FFA 0x7FFB 0x7FFC 0x7FFD 0x7FFE 0x7FFF 0x8000 所以从0x8000倒数四 任何一个基数,我们使用的基数10,每个

这是幻灯片

所以我们的堆栈是十六进制8000(32768),我们从中减去4个字节以允许 被推动的元素

十六进制8000分钟4字节如何产生7FFC?我知道7FFC是32764,也就是4字节减去32768,但那是因为我用计算器检查过。幻灯片中暗示的方法是什么?另外,其余的值进入什么地址

谢谢。

以16为基数计算

0x7FF8
0x7FF9
0x7FFA
0x7FFB
0x7FFC
0x7FFD
0x7FFE
0x7FFF
0x8000
所以从0x8000倒数四

任何一个基数,我们使用的基数10,每个位置有10个符号,所以10到幂0列的数字从0到9,然后我们必须增加下一列,即10到幂1列或基数10中的“十”列。9之后,我们得到10,然后是19,我们再这样做20到29,然后是99,然后是100

我们有两个符号,第一列是2的幂0或1列,下一列是2的幂1或2列,下一列是2的幂2或4列,依此类推。就像10垒一样。我们有两个符号,所以我们从0数到1,然后我们需要滚动到下一列1011,然后我们需要再次滚动100101110111,然后是1000,依此类推

基数8或八进制我们有8个符号0到7,我们从0到7,然后我们在8s列中增加一个,从10到17,然后在8s列中增加另一个,依此类推到77,然后我们需要增加16s列100,101。。。107, 110, ... 117、120等等


基数16有16个符号0到9,然后A到F,所以我们从0x0到0xF,然后从0x10到0x1F,然后从0x20到0x2F,依此类推……

Hexadecimal:这个问题没有什么意义。您似乎在问为什么0x800-0x4==0x7FFC,但您已经解释过,当您将它们转换为base-10时,会得到32768-4==32764,所以这似乎很明显。你已经回答了你自己的问题。我们无法回答“其余的值将进入哪些地址?”,因为我们不知道您在谈论哪些值或地址。这个问题没有背景。