我目前正在学习一些汇编代码的基础知识。我正在读一本书,其中提出了一些练习。我不明白其中一个人的答案。
以下是附有本书答案的练习。我在第 3 行和第 4 行遇到了麻烦。
在第 3 行,我们必须将char 转换为 unsigned。首先我进行转换:char --> unsigned char。位级别没有变化。然后unsigned char --> unsigned所以我使用零扩展名。这将导致指令movzbl %al, (%edx)
在第 4 行,我们必须将unsigned char 转换为 int。首先我进行转换:unsigned char --> char。位级别不变。然后char --> int我在其中进行符号扩展。这将导致指令movsbl %al, (%edx)
我做错了什么还是你认为这是书中的错误?
谢谢 !