gpt4 book ai didi

nasm - 在 NASM 中声明变量

转载 作者:行者123 更新时间:2023-12-04 00:33:41 27 4
gpt4 key购买 nike

我刚刚在学习 NASM,我有点想弄清楚这个问题。你如何在 NASM 中声明变量?例如,如何在 NASM 中声明 unsigned int i?谢谢

最佳答案

汇编语言中没有 unsigned int 这样的东西(据我所知)。在 NASM 中,您只能声明内存位置并将内容放入其中。示例:

section .data
abyte: db 15
aword: dw 452
adword: dd 478569
; etc etc see Nasm manual for more 'types'

您处理变量的方式将使您使用有符号或无符号值。当您需要带符号的值时,请记住 div 和 mul 仅适用于无符号值。 (MSB 不是符号位)。在这种情况下,您应该使用 idiv 和 imul(整数除法或带符号除法)。还要记住,一个值的负数将显示为二进制补码。您将看到 5(以 AX 为例):0000000000000101 二进制,但对于 -5,您将看到 1111111111111011,这是 5 的二进制补码。两者相加都给出 5 + (-5) 或 0000000000000101 + 1111111111111011 = 0000000000000000。溢出标志将被适当设置以指示当两个数字都被视为无符号时存在溢出,因此有时您可以忽略它。一个好的做法是经常调试和检查标志状态。要检查 AX 是否为负数,您可以使用 ax,如果 MSB 为 1,则 ax 和符号标志将为 1,否则为 0。(js 和 jns 指令)

回答有点晚了,但是对于那些有同样问题的人.....

关于nasm - 在 NASM 中声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26660052/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com