青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

coreBugZJ

此 blog 已棄。

匯編調用 C 語言 printf %f 輸出浮點數 float 的問題:4字節 還是 8字節


 1 
 2 // 畢業論文做Pascal編譯器,把編譯生成的中間代碼翻譯為 nasm 匯編調用 C 語言庫函數時,在輸出 float 部分出現問題。
 3 
 4 
 5 // 先說明一下,我安排棧中數據 8字節對齊,不管數據實際大小,都分配 8字節,按最低字節尋址。
 6 // 當然,調用 C 語言函數時的參數棧,還是按 i386 的來。
 7 
 8 
 9 // C printf 格式化字符串
10 data.add( head + "c_format_float32 : db \'%f\', 0" );
11 data.add( head + "c_format_float64 : db \'%lf\', 0" );
12 data.add( head + "c_format_float64G: db \'%G\', 0" );
13 
14 
15 // 棧頂已經是 8字節的 ieee754 double 數據,然后
16 text.add( line + "push dword c_format_float64G" );
17 // 或 text.add( line + "push dword c_format_float64" ); 也正確
18 text.add( head + "call printf" );
19 text.add( head + "add esp, 12" );
20 // 生成可執行文件后,運行輸出正確
21 
22 
23 // 棧頂已經是 4字節的 ieee754 float 數據,且不等于0(次棧頂 4字節全零),然后
24 text.add( line + "push dword c_format_float32" );
25 text.add( head + "call printf" );
26 text.add( head + "add esp, 12" );
27 // 生成可執行文件后,運行輸出 0.000000
28 
29 
30 // 正確的是
31 // 棧頂已經是 4字節的 ieee754 float 數據,然后
32 // 先把4字節的float 轉為 8字節的double
33 text.add( line + "fld dword [esp]" );
34 text.add( head + "fstp qword [esp]" ); // 8字節對齊,未覆蓋棧中數據
35 text.add( head + "push dword c_format_float32" );
36 text.add( head + "call printf" );
37 text.add( head + "add esp, 12" );
38 // 生成可執行文件后,運行輸出正確
39 
40 

結論:
 C 語言的 printf 使用 %f 來輸出 float 時,實際上先把 4字節的float轉化為 8字節的double,然后訪問了棧上的 8字節數據。

(環境:Ubuntu12.04 32位 intel i3 nasm gcc)

posted on 2013-04-29 16:51 coreBugZJ 閱讀(3206) 評論(2)  編輯 收藏 引用 所屬分類: AssembleLinuxCPUGPUProgrammingLanguage

Feedback

# re: 匯編調用 C 語言 printf %f 輸出浮點數 float 的問題:4字節 還是 8字節 2013-05-09 19:17 ilvu

印象里可變參數壓棧是4字節對齊的。試一試char作為參數看看。  回復  更多評論   

# re: 匯編調用 C 語言 printf %f 輸出浮點數 float 的問題:4字節 還是 8字節 2013-05-09 22:34 coreBugZJ

@ilvu
i386的參數原則上全都放在棧中,是4字節對齊的,char和short也是4字節對齊。  回復  更多評論   


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久久夜| 日韩视频一区二区三区在线播放免费观看| 老司机午夜免费精品视频 | 欧美日韩一区精品| 欧美电影免费观看大全| 久久免费视频这里只有精品| 性欧美1819sex性高清| 亚洲一二区在线| 亚洲欧美激情四射在线日| 午夜久久久久| 免费亚洲电影在线| 欧美日韩视频在线第一区| 欧美天天视频| 国产一区二区视频在线观看| 韩国女主播一区| 亚洲精品在线观看免费| 亚洲在线黄色| 久久亚洲电影| 亚洲免费精品| 欧美影院视频| 欧美日韩不卡在线| 国产精一区二区三区| 黄色av成人| 亚洲香蕉网站| 美女精品网站| 亚洲综合电影| 欧美激情亚洲自拍| 国产有码一区二区| 一本色道久久88综合亚洲精品ⅰ | 亚洲男同1069视频| 久久综合国产精品台湾中文娱乐网| 欧美激情一二区| 国产亚洲精品一区二区| 日韩视频一区二区三区在线播放免费观看 | 亚洲精品老司机| 午夜视频在线观看一区二区| 裸体丰满少妇做受久久99精品| 亚洲免费观看高清在线观看| 久久九九国产精品怡红院| 欧美性大战xxxxx久久久| 激情久久五月| 久久成人18免费观看| 最新日韩av| 亚洲免费一区二区| 欧美日韩另类视频| 激情成人av| 亚洲精选大片| 久久这里只有精品视频首页| 久久久天天操| 艳女tv在线观看国产一区| 欧美在线亚洲一区| 国产精品国产福利国产秒拍| 亚洲三级免费观看| 男女视频一区二区| 久久精品免费观看| 国产一区二区三区久久悠悠色av | 亚洲特色特黄| 亚洲第一网站| 久久久免费精品视频| 国产麻豆视频精品| 亚洲欧美高清| 一道本一区二区| 欧美男人的天堂| 日韩一区二区高清| 亚洲激情综合| 欧美精品二区三区四区免费看视频| 在线看视频不卡| 亚洲电影激情视频网站| 久热精品视频在线观看一区| 激情综合网址| 欧美激情第8页| 欧美精品一区二区三区一线天视频| 亚洲精品一区二区三区不| 欧美国产日韩免费| 欧美韩日亚洲| 亚洲天堂成人在线视频| 中文日韩电影网站| 国产精品人人做人人爽人人添| 午夜精品福利在线| 欧美一区二区三区另类| 国产亚洲欧美日韩精品| 嫩草国产精品入口| 欧美精品尤物在线| 性伦欧美刺激片在线观看| 亚洲视频图片小说| 一区二区三区偷拍| 国产亚洲一区精品| 欧美福利一区二区| 欧美日韩一卡| 欧美一区二区视频免费观看| 欧美一区二区三区四区高清| 影音先锋日韩有码| 日韩一区二区福利| 国产一区二区视频在线观看 | 欧美成人一区二区三区| 欧美精品18+| 香蕉国产精品偷在线观看不卡| 欧美一区二区日韩一区二区| 亚洲黄色av一区| 中日韩美女免费视频网址在线观看| 国产精品亚洲激情| 欧美国产日韩a欧美在线观看| 欧美性大战久久久久久久| 久久久国产精品亚洲一区| 欧美第十八页| 久久久久久尹人网香蕉| 欧美美女操人视频| 老**午夜毛片一区二区三区| 欧美日韩福利| 麻豆久久婷婷| 国产欧美日韩视频在线观看| 亚洲第一精品夜夜躁人人爽| 国产日韩亚洲欧美| 亚洲精品国产品国语在线app| 国产亚洲毛片在线| 中文av一区二区| 99视频精品| 奶水喷射视频一区| 久久裸体视频| 国产精品日本一区二区| 亚洲人成人77777线观看| 国产午夜精品理论片a级大结局| 亚洲国产欧美一区| 一区精品在线| 欧美在线观看视频在线| 亚洲男人第一网站| 欧美日韩午夜精品| 最新中文字幕亚洲| 在线不卡中文字幕| 午夜久久久久久| 午夜激情综合网| 国产精品草莓在线免费观看| 亚洲欧洲日本专区| 99精品国产热久久91蜜凸| 久久网站免费| 麻豆国产va免费精品高清在线| 国产模特精品视频久久久久 | 国产亚洲精品aa| 欧美一级夜夜爽| 久久精品在线免费观看| 国产亚洲福利| 久久国产精品一区二区三区四区| 午夜久久tv| 国产精品自在欧美一区| 亚洲自啪免费| 久久精品视频在线| 美女主播精品视频一二三四| 久久久久国产精品厨房| 国产日本精品| 久久九九国产| 亚洲国产精品嫩草影院| 亚洲国产精品久久久久秋霞影院| 久久精品国产免费| 老色鬼久久亚洲一区二区 | 久久国产一区二区| 国产精品一区视频| 欧美一区2区视频在线观看 | 国产私拍一区| 久久精品99国产精品日本| 久久综合福利| 亚洲精品麻豆| 国产精品美女久久久浪潮软件 | 亚洲伦理一区| 亚洲一区日韩在线| 国产一区二区中文| 久久色在线播放| 亚洲国产日韩欧美一区二区三区| 99国产精品久久久久老师 | 久久综合网络一区二区| 亚洲精品1区| 午夜欧美理论片| 亚洲第一毛片| 国产精品二区二区三区| 久久精品亚洲一区二区三区浴池| 亚洲国产日韩综合一区| 亚洲欧美日韩国产中文在线| 国产综合视频| 欧美三级第一页| 久久久久久久综合日本| 亚洲精品黄色| 久久久久久久久伊人| 99精品久久久| 激情综合网址| 国产女主播在线一区二区| 免费国产自线拍一欧美视频| 中文在线一区| 亚洲国产欧美日韩精品| 久久精品五月婷婷| 亚洲视频一区二区在线观看 | 久久全国免费视频| 99re热精品| 亚洲国产精品久久久久| 国产乱人伦精品一区二区| 欧美日韩mp4| 欧美sm视频| 久久婷婷激情| 欧美一区国产在线| 在线午夜精品| 亚洲区一区二区三区| 另类综合日韩欧美亚洲|