首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在NASM中声明变量

在NASM中声明变量
EN

Stack Overflow用户
提问于 2014-10-30 17:54:56
回答 1查看 6.8K关注 0票数 3

我只是在学习NASM,我还在努力想办法解决这个问题。您如何在NASM中声明变量?例如,您如何在NASM中声明unsigned int i?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-16 11:47:49

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

代码语言:javascript
复制
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)或0000000000101+ 1111111111111011 = 0000000000000000。当两个数字都被视为无符号时,溢出标志将被适当地设置为指示存在溢出,因此有时您可以忽略这一点。一个好的做法是经常调试和检查标志状态。若要检查AX是否为负数,则可以使用ax,如果MSB为1,则ax和符号标志为1,否则为0。(js和jns指令)

答案有点晚,但对于那些有同样问题的人来说……

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26660052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档