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

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>
            欧美一区日韩一区| 欧美中文字幕视频在线观看| 亚洲欧美日韩电影| 精品99一区二区| 欧美日本中文字幕| 久久天天综合| 欧美一区视频| 国产精品扒开腿做爽爽爽视频| 蜜臀a∨国产成人精品 | 午夜亚洲性色视频| 99精品久久免费看蜜臀剧情介绍| 久久久久免费视频| 久久精品在线播放| 国产精品日日摸夜夜摸av| 亚洲日本va午夜在线电影| 亚洲国产专区校园欧美| 老司机精品导航| 美女亚洲精品| 亚洲第一页在线| 久久久五月婷婷| 另类春色校园亚洲| 一区在线播放| 久久久九九九九| 99亚洲一区二区| 99视频精品免费观看| 另类成人小视频在线| 蜜臀久久久99精品久久久久久 | 一区二区免费看| 亚洲视频在线看| 欧美视频精品在线观看| 一区二区欧美日韩| 亚洲欧美经典视频| 国产精品一区免费观看| 午夜天堂精品久久久久| 久久乐国产精品| 在线观看欧美黄色| 欧美国产精品| 日韩一级片网址| 翔田千里一区二区| 国内揄拍国内精品少妇国语| 久久婷婷影院| 亚洲日韩欧美一区二区在线| 在线一区二区三区四区五区| 国产精品剧情在线亚洲| 久久av老司机精品网站导航| 欧美成人精品福利| 在线综合视频| 国产一区99| 欧美福利视频| 亚洲午夜一区二区| 久久综合久久88| 99亚洲一区二区| 国产精品色在线| 鲁大师影院一区二区三区| 亚洲精品在线免费观看视频| 欧美一级成年大片在线观看| 禁断一区二区三区在线| 欧美老女人xx| 欧美一区网站| 亚洲伦理久久| 老司机免费视频一区二区三区| 亚洲国产综合91精品麻豆| 国产精品国产| 久久综合久久久| 亚洲少妇一区| 亚洲电影av在线| 久久精品国产亚洲a| 亚洲三级免费| 国语自产精品视频在线看8查询8| 欧美国产日韩一区二区三区| 欧美亚洲色图校园春色| 亚洲人成亚洲人成在线观看图片| 久久久7777| 亚洲午夜精品在线| 91久久国产综合久久| 国产欧美日韩免费| 欧美日韩另类综合| 快射av在线播放一区| 午夜精品视频在线观看| 亚洲人体影院| 欧美国产精品中文字幕| 久久国产精品色婷婷| 亚洲一区二区三区精品动漫| 亚洲黄色av一区| 狠狠色丁香久久综合频道| 国产精品av久久久久久麻豆网| 蜜桃精品久久久久久久免费影院| 欧美一级视频精品观看| 亚洲视频一区二区| 亚洲精选在线观看| 欧美激情久久久久久| 久久综合网络一区二区| 欧美一区免费视频| 亚洲一区欧美| 一区二区三区成人| 日韩一区二区精品视频| 亚洲国产欧美一区| 亚洲高清精品中出| 伊人久久婷婷| 在线免费观看日本一区| 激情久久影院| 在线观看中文字幕不卡| 韩日视频一区| 一区国产精品| 亚洲第一中文字幕在线观看| 极品av少妇一区二区| 娇妻被交换粗又大又硬视频欧美| 国产亚洲一区二区精品| 国产亚洲精品久久久| 国产日产亚洲精品| 国产在线精品自拍| 伊人久久av导航| 在线观看不卡av| 亚洲国产成人精品女人久久久| 伊人久久婷婷| 日韩视频免费| 亚洲专区国产精品| 欧美一区二区三区四区在线观看地址| 午夜亚洲视频| 久久久久久久久岛国免费| 久久亚洲影音av资源网| 欧美激情一区二区三区成人| 91久久国产综合久久91精品网站| 亚洲精品裸体| 亚洲自啪免费| 久久在线视频| 欧美日韩国产不卡| 国产精品揄拍500视频| 国产一区二区三区网站| 91久久黄色| 亚洲午夜免费福利视频| 久久精品国产77777蜜臀| 免费永久网站黄欧美| 亚洲精品久久久久久久久久久久| 一区二区高清在线观看| 欧美一级欧美一级在线播放| 久久综合伊人77777尤物| 欧美日韩色一区| 国产一区二区欧美| 久久久久久亚洲精品不卡4k岛国| 亚洲女同在线| 久久精品国产亚洲高清剧情介绍| 免费一级欧美片在线观看| 亚洲美女啪啪| 久久九九热re6这里有精品| 欧美日韩a区| 韩国亚洲精品| 亚洲一级一区| 欧美搞黄网站| 香蕉成人啪国产精品视频综合网| 欧美成人a视频| 国产人成一区二区三区影院| 日韩午夜免费视频| 久久精品亚洲| 中文欧美日韩| 欧美黄在线观看| 黄色一区三区| 欧美一区二区三区喷汁尤物| 亚洲国产精品尤物yw在线观看| 亚洲欧美精品在线观看| 欧美精品一区二区久久婷婷| 激情欧美一区二区三区在线观看| 亚洲在线免费| 亚洲人成人99网站| 另类春色校园亚洲| 国产日韩欧美在线| 激情自拍一区| 亚洲美女视频| 久久se精品一区精品二区| 亚洲精品国久久99热| 亚洲欧美日韩国产精品| 欧美激情综合网| 一区精品久久| 亚洲欧美国产高清| 欧美激情网站在线观看| 久久精品视频免费| 国产精品久久久久天堂| 亚洲精品麻豆| 亚洲福利在线观看| 久久av资源网| 国产精品一区二区久久国产| 亚洲综合精品一区二区| 亚洲国产成人午夜在线一区| 久久国产精品99精品国产| 欧美高清日韩| 亚洲美女毛片| 欧美激情第8页| 久久riav二区三区| 激情欧美一区二区| 欧美在线免费| 亚洲一区二区不卡免费| 国产精品入口| 亚洲性感激情| 宅男精品导航| 久久亚洲一区| 影音先锋亚洲视频| 麻豆久久久9性大片| 欧美在线影院在线视频| 国产精品羞羞答答| 久久久久久亚洲精品中文字幕|