亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: gcc匯編請教,函數(shù)返回值不對 [打印本頁]

作者: likec    時間: 2003-07-05 03:49
標(biāo)題: gcc匯編請教,函數(shù)返回值不對
各位大俠,本人在學(xué)習(xí)過程中,想測試一下gcc中的匯編,寫了個加法程序如下:
void add(int s,int *d)
{
     __asm__ __volatile__(
     "addl %1,%0"
     :"=m"(d)
     :"ir"(s),"m"(d)
     );
}
void main()
     int input=1;
     int *output;
     output=2;
     add(input,output);
     printf("output is: %d\n",*output);
}
怎么結(jié)果還是2,不是我要的3?
我用gcc -S編成匯編程序后,看不出毛病,也不知道如何調(diào)試?
另外,好像gdb沒有dos下debug調(diào)試匯編的功能吧?哪位大俠給介紹一個linux下匯編調(diào)試工具。
作者: 無雙    時間: 2003-07-05 10:35
標(biāo)題: gcc匯編請教,函數(shù)返回值不對
int *output;
output=2;
?????
你這里只是讓output指向一個常量
作者: odin_free    時間: 2003-07-05 13:05
標(biāo)題: gcc匯編請教,函數(shù)返回值不對
linux下的匯編是nasm
作者: likec    時間: 2003-07-05 15:20
標(biāo)題: gcc匯編請教,函數(shù)返回值不對
原帖由 "無雙" 發(fā)表:
int *output;
output=2;
?????
你這里只是讓output指向一個常量
   

不好意思打錯了,在程序中是*output,否則編譯過也運(yùn)行不了。
結(jié)果還是一樣。
作者: likec    時間: 2003-07-05 15:24
標(biāo)題: gcc匯編請教,函數(shù)返回值不對
[quote]原帖由 "odin_free"]linux下的匯編是nasm[/quote 發(fā)表:
     
可是我不光是匯編還要和c結(jié)合的話,還是gcc好用吧。
作者: likec    時間: 2003-07-05 18:45
標(biāo)題: gcc匯編請教,函數(shù)返回值不對
我知道怎么回事了,是在嵌入?yún)R編子程序中,將d改為*d,即可。
作者: mgw    時間: 2003-07-05 22:54
標(biāo)題: gcc匯編請教,函數(shù)返回值不對
to likec:

請問GCC的匯編資料在哪可以找到?能發(fā)一份給我嗎?
unixnow@163.com
作者: likec    時間: 2003-07-06 07:32
標(biāo)題: gcc匯編請教,函數(shù)返回值不對
原帖由 "mgw" 發(fā)表:
to likec:

請問GCC的匯編資料在哪可以找到?能發(fā)一份給我嗎?
unixnow@163.com
   

都是網(wǎng)上找的,還有毛德操的《情境分析》第一章。
你可以在北大天網(wǎng)上搜gcc-inline-asm.pdf,試試看。 北大天網(wǎng)好像有問題了,已發(fā)。
bram@163.net
作者: mgw    時間: 2003-07-06 13:18
標(biāo)題: gcc匯編請教,函數(shù)返回值不對
已收到,謝謝!




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2