我用java编程了很多,知道python的基础知识,有时我玩c++......这些都是高级编程语言,它们很棒,但我很好奇事情在这个更深层次上是如何工作的case 汇编语言... 我开始学习 x86 处理器的汇编并选择 NASM 作为我的汇编程序。我花了一些时间学习寄存器和堆栈是如何工作的,如何存储信息以及如何更改信息,不仅仅是阅读,而是练习,使用调试器等等,有些事情真的开始困扰我:数值操作......
我的意思是,每当从输入中读取某些内容时,它都会作为对应的 ASCII 值存储在内存中,我可以接受...我了解如何使用整个通道偏移和长度读取和写入控制台的基础知识系统但是正如我之前提到的,包括数字在内的字符存储为 ASCII 值。0 存储为 0x30,1 存储为 0x31,等等。这意味着单个数字存储为整个字节,我认为这是一个缺点,因为我知道一个字节可以表示高达 255 的数字,这将节省大量内存和时间来进行数学运算并为其他数据留出空间......在像 c++ 这样的语言中,整数值仅由 4 个字节表示,这意味着这些语言可以存储最多 4294967295 的整数
言归正传...我真正想知道的是什么是表示数字并使用 nasm 进行基本算术运算的最佳方法。我应该将这些数字保留为 ASCII 值并在字节级别上进行操作还是应该转换这些数字,以便一个字节可以容纳更大的值?或者有没有办法更有效地读取数字?
PS.:对不起,很长的帖子,我只是想提供我所关注的整体背景,以便你们可以根据它来帮助我......对于糟糕的英语......我试图尽可能清楚(英语不是我的母语,但我会尽可能多地理解它......在我编程时了解英语很有帮助)