首页 > 解决方案 > 从有符号/无符号字符到无符号/有符号整数类型转换的 IA32 汇编代码

问题描述

这是从计算机系统,程序员的角度来看(第 2 版)

在问题 3.4 中,要求学生确定从源数据类型转换到指针所指的目标所需的汇编指令

本章后面给出的这个答案表明我们需要将源类型(左列)扩展为目标类型(中列)。

在此处输入图像描述

没有太多信息可以从这个问题中提取模式。扩展的类型是否总是由源类型而不是目标类型确定,如本例所示?

标签: assemblyx86type-conversionattinteger-promotion

解决方案


答案在你的书中。

在 C 中执行同时涉及大小更改和“符号”更改的强制转换时,操作应首先更改大小。(第 2.2.6 节)。

-- CSAPP 2e,练习题 3.4

所以这两个转换是这样工作的:

char --> int --> unsigned int
unsigned char --> unsigned int --> int

推荐阅读