C语言scanf_s("%d",&a),从汇编角度来讲,是啥意思?

兄弟姐妹们,请问一下,C语言scanf_s("%d",&a),从汇编角度来讲,是啥意思?
最新回答
じ○Ve→三妻四妾

2025-03-26 14:27:46

首先,你会先定义一个变量,例如char a;那么这句话对应的汇编就是在数据段定义一个变量,并且给出类型a word;C里面的内存是随机分配的,而汇编里面和数据段起始位置有关。
然后,C这句相当于汇编一下几句
offset dx,a;取地址相当于&a这段
mov ah,09;接着调用系统函数
int 21h;
当然,实际计算机不一定是这样的,这里只是举个例子
半袖桃花

2025-03-26 03:42:55

首先
scanf("%s",data),data[0]-'E'
是一个逗号表达式
它的返回值是最后一个表达式的返回值,即data[0]-'E'
data[0]是这个字符串的第一位,char型实际上就是范围小的整形,里面存的是ASCII码,'E'是69,所以当data[0]里存的ASCII码是69是,返回值是0,循环结束,也就是说第一位是'E'时循环结束
所以最终效果是读到首字母是'E'的字符串时(读取字符串时会忽略前面的空格),循环结束
我胸小随我爸不行啊

2025-03-26 07:31:36

汇编,不知道这样说可以不?把键盘中断转换成数字,放到以a标记的地址中。