#include<stdio.h>
void main()
{
char i;
i=200+'a';
printf("%d\n",i);
printf("%c\n",i);
}
//这是c源码;地下是i=200+'a'句代码的反汇编代码
mov eax,0C8h ;把(0c8h 16进制)200放到eax寄存器
add eax,61h ;eax寄存器加上a的ascii码值(61h 十六进制)
;0c8h和61h相加后eax的值为129h即eax的低位地址al的值为29h
mov byte ptr [ebp-4],al
;因为 i是char型 只占一个字节 而eax寄存器是四个字节,所以只把低字节的al放入到i中。也就是i的值为29h,即ascii码'(',十进制41.
温馨提示:答案为网友推荐,仅供参考