{"id":173,"date":"2010-09-24T11:39:00","date_gmt":"2010-09-24T11:39:00","guid":{"rendered":"http:\/\/www.cclo.idv.tw:8080\/blogs\/wordpress\/?p=173"},"modified":"2010-09-24T11:39:00","modified_gmt":"2010-09-24T11:39:00","slug":"_64bit_linux_32bit_gcc_32bit_b","status":"publish","type":"post","link":"https:\/\/blog.cclo.idv.tw\/?p=173","title":{"rendered":"\u5728 64-bit \u7684 Linux \u4e2d\uff0c\u7528 32-bit \u7684 gcc \u7522\u751f 32-bit \u7684 binary\u2026"},"content":{"rendered":"<p>\u5662\uff01\u9019\u500b\u6a19\u984c\u771f\u662f\u500b\u4e82\u4e03\u516b\u7cdf\u7684\u7d44\u5408\u2026\u2026XDD<\/p>\n<p>\u770b\u8d77\u4f86\u5f88\u597d\u7b11\uff0c\u4f46\u5be6\u969b\u9047\u5230\u5c31\u5f88\u96e3\u7b11\u51fa\u4f86\u4e86\u3002<\/p>\n<p>\u5728\u9019\u6a23\u7684\u7d44\u5408\u4e0b\uff0c\u82e5\u662f\u6211\u5011\u76f4\u63a5\u57f7\u884c gcc \u7684\u8a71\uff0c\u6703\u6709\u4e0b\u5217\u7684\u932f\u8aa4\u8a0a\u606f\uff1a<\/p>\n<pre class=\"brush: text\">$ gcc test.c\n\/tmp\/cc7YTML2.s: Assembler messages:\n\/tmp\/cc7YTML2.s:13: Error: suffix or operands invalid for <code data-enlighter-language=\"push\" class=\"EnlighterJSRAW\">push&#039;\n\/tmp\/cc7YTML2.s:14: Error: suffix or operands invalid for <\/code>'\n\/tmp\/cc7YTML2.s:16: Error: suffix or operands invalid for <code data-enlighter-language=\"pop\" class=\"EnlighterJSRAW\">push&#039;\n\/tmp\/cc7YTML2.s:25: Error: suffix or operands invalid for <\/code>'\n\/tmp\/cc7YTML2.s:26: Error: suffix or operands invalid for <code data-enlighter-language=\"raw\" class=\"EnlighterJSRAW\">pop&#039;&lt;\/pre&gt;\n&lt;p&gt;\u6703\u6709\u9019\u6a23\u7684\u932f\u8aa4\u8a0a\u606f\uff0c\u4e3b\u8981\u662f\u56e0\u70ba gcc \u7522\u751f\u4e86 32-bit \u7684 assembly file\uff0c\u9935\u7d66 as (assmebler)\uff1b\u4f46\u6b64\u6642\u7cfb\u7d71\u88dd\u7684 as \u537b\u662f 64-bit \u7248\u7684\uff0c\u56e0\u6b64\u9810\u8a2d\u6703\u7528 64-bit \u7684\u65b9\u5f0f\u53bb\u7d44\u8b6f 32-bit \u7684 assembly\uff0c\u7d50\u679c\u7576\u7136\u662f\u51fa\u4e0d\u4f86\u3002&lt;\/p&gt;\n&lt;p&gt;as \u6709\u500b\u53c3\u6578 <\/code>-32\u2019\uff0c\u53ef\u4ee5\u5f37\u5236 as \u7528 32-bit \u7684\u65b9\u5f0f\u53bb\u7d44\u8b6f\u3002\u6211\u5011\u53ef\u4ee5\u628a\u539f\u672c gcc \u5e6b\u6211\u5011\u505a\u7684\u52d5\u4f5c\u62c6\u6210\u4e0b\u5217\u7684\u5206\u89e3\u52d5\u4f5c\uff0c\u624b\u52d5\u7de8\u8b6f test.c\uff1a<\/p>\n<pre class=\"brush:text\">$gcc -S test.c            # \u7de8\u8b6f\uff0c\u7522\u751f test.s\n$as -32 -o test.o test.s  # \u4ee5 32-bit \u6a21\u5f0f\u7d44\u8b6f\uff0c\u7522\u751f test.o\n$gcc -o test.out test.o   # \u7522\u751f\u57f7\u884c\u6a94<\/pre>\n<p>\u4f46\u6bcf\u500b\u7a0b\u5f0f\u9019\u6a23\u505a\u4e0d\u662f\u5f88\u9ebb\u7169\u55ce\uff08\u7b11\uff09\uff1f\u9084\u597d\uff0cgcc \u53e6\u5916\u63d0\u4f9b\u4e86\u4e00\u500b\u65b9\u6cd5\uff0c\u53ef\u4ee5\u628a\u53c3\u6578\u9001\u7d66 as\uff1a<\/p>\n<pre>$gcc -Wa,-32 -o test.out test.c<\/pre>\n<p>\u8981\u6ce8\u610f 32 \u524d\u9762\u7684\u6e1b\u865f\u4e0d\u80fd\u7701\u7565\u3002\u9019\u6a23\u505a\u5c31 ok \u4e86\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5662\uff01\u9019\u500b\u6a19\u984c\u771f\u662f\u500b\u4e82\u4e03\u516b\u7cdf\u7684\u7d44\u5408\u2026\u2026XDD \u770b\u8d77\u4f86\u5f88\u597d\u7b11\uff0c\u4f46\u5be6\u969b\u9047\u5230\u5c31\u5f88\u96e3\u7b11\u51fa\u4f86\u4e86\u3002 \u5728\u9019\u6a23\u7684\u7d44\u5408\u4e0b\uff0c\u82e5\u662f\u6211\u5011 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[13],"tags":[],"table_tags":[],"class_list":["post-173","post","type-post","status-publish","format-standard","hentry","category--computer-science"],"aioseo_notices":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/blog.cclo.idv.tw\/index.php?rest_route=\/wp\/v2\/posts\/173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.cclo.idv.tw\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.cclo.idv.tw\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.cclo.idv.tw\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.cclo.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=173"}],"version-history":[{"count":0,"href":"https:\/\/blog.cclo.idv.tw\/index.php?rest_route=\/wp\/v2\/posts\/173\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.cclo.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.cclo.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.cclo.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=173"},{"taxonomy":"table_tags","embeddable":true,"href":"https:\/\/blog.cclo.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Ftable_tags&post=173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}