當前位置:首頁 » 編程軟體 » nasm編譯運行

nasm編譯運行

發布時間: 2023-02-18 06:55:43

① nasm的段定義

可以隨便定,什麼都可以 .data .text你也可以改成 .a .b,masm里才不可以隨便定,masm32里.data和.text就是約定的數據和代碼段,nasm則不這樣認為,你寫來個[secion aabb]也可以啊

比你你寫個:

extern _ExitProcess@4
extern _printf

[section .erer]
a db 'hello,world!',13,10

[section asdf]

section .ggg
global _start
_start:
push a
call _printf
add esp, 4
call _ExitProcess@4

照樣可以編譯運行

② 怎麼在64位系統下編譯nasm

用記事本寫代碼
用命令編譯

nasm -f <format> <filename> [-o <output>]
-f後面是輸出格式,具體的用nasm -hf查詢
filename是代碼文件名
-o後面是輸出文件名

如果輸出類型的是一種object file的話要用鏈接器鏈接

一切操作都要在命令行下完成,如果不習慣命令行操作不建議用

③ 匯編語言用什麼運行

只要不是用機器語言直接寫程序,用其它任何語言編寫的程序都需要用翻譯工具翻譯成機器語言程序才能運行。

用匯編語言編寫的程序,需要用匯編程序將它翻譯成機器語言的目標代碼,再用連接工具將目標代碼組裝成可執行的程序。

有了程序,就可以直接運行了。

在PC機上用的匯編程序有很多,最經典的是MASM,另外還有TASM, NASM等等。

④ 使用GCC和NASM在Linux下聯合編譯

只要你的程序和庫編譯時針對的是同一個目標abi(比如說使用同樣的系統調用編號),就可以鏈接。和編譯器基本沒有關系。

⑤ 如何在64位的Linux系統上使用匯編和C語言混合編程 第2頁

編譯和鏈接的時候使用的指令:(AMD處理器,64位操作系統)
編譯鏈接指令
1 nasm -f elf foo.s -o foo.o
2 gcc -c bar.c -o bar.o
3 ld -s -o foobar bar.o foo.o
匯編語言用nasm編寫並用nasm編譯器編譯,而C語言用的是gcc編譯,這些都沒有問題,但是在鏈接的時候出錯了,提示如下:
ld: i386 architecture of input file `foo.o' is incompatible with i386:x86-64 output
google了一下,意思就是nasm 編譯產生的是32位的目標代碼,gcc 在64位平台上默認產生的是64位的目標代碼,這兩者在鏈接的時候出錯,gcc在64位平台上默認以64位的方式鏈接。
這樣在解決的時候就會有兩種解決方案:
<1> 讓gcc 產生32位的代碼,並在鏈接的時候以32位的方式進行鏈接
在這種情況下只需要修改編譯和鏈接指令即可,具體如下:
32位的編譯鏈接指令
1 nasm -f elf foo.s -o foo.o
2 gcc -m32 -c bar.c -o bar.o
3 ld -m elf_i386 -s -o foobar foo.o bar.o
具體的-m32 和 -m elf_i386 請自行查閱gcc (man gcc)

如果你是高版本的gcc(可能是由於更新內核造成的),可能簡單的使用-m32 的時候會提示以下錯誤(使用別人的歷程,自己未曾遇到):
> In file included from /usr/include/stdio.h:28:0,
> from test.c:1:
> /usr/include/features.h:323:26: fatal error: bits/predefs.h: No such file or directory
> compilation terminated.
這應該是缺少構建32 位可執行程序缺少的包,使用以下指令安裝:
sudo apt-get install libc6-dev-i386
此時應該就沒有什麼問題了。

⑥ 匯編語言編譯器的NASM

NASM是一個為可移植性與模塊化而設計的一個80x86的匯編器。它支持相當多
的目標文件格式,包括Linux和'NetBSD/FreeBSD','a.out','ELF','COFF',微軟16
位的'OBJ'和'Win32'。它還可以輸出純二進制文件。它的語法設計得相當的簡
潔易懂,和Intel語法相似但更簡單。它支持'Pentium','P6','MMX','3DNow!',
'SSE' and 'SSE2'指令集,

⑦ 用NASM能將asm結尾的文件編譯成exe么該怎麼處理

可以吧,選擇相應平台的版本,nasm -h 有簡單的幫助的。
對 x86 也可以使用 Masm5/6 或 Masm32 來做,分別是 dos16 類或 Win32 類的程序。
不同匯編軟體,對 asm 源程序的格式要求和支持也可能是不一樣的。

⑧ nasm.exe打開就閃退是怎麼回事

nasm是沒有運行畫面的,所以打開就閃退了.
nasm是需要帶參數使用的,你可以選擇在cmd.exe中用命令行調用nasm或寫一個bat批處理文件運行之.
現假設你有一匯編文件a.asm
命令行可以這么寫:
(這里寫好nasm的安裝路徑)/nasm.exe -f win32 -o a.obj a.asm
這樣就把a.asm編譯了,但是沒有鏈接,因為nasm似乎不具有鏈接的能力.
要解決這個問題,你可以再找一個連接器把這個a.obj鏈接一下.
對本人而言,本人計算機上安裝了DevC++編譯器,其內部有一個ld.exe是個鏈接器
ld -o a.exe a.obj
這樣就成功滴鏈接出了一個可執行文件了.
如果你要寫bat的話,建議在每句命令的下一行,加一行pause把控制台停下來,這樣能讓你看清編譯器的反饋信息.

⑨ nasm的安裝方法和使用介紹有哪些

1.1在dos和 Windows 下安裝NASM

如果你拿到了 NASM 的 DOS 安裝包,'nasmXXX.zip'(這里.'XXX'表示該安裝包的 NASM 版
本號),把它解壓到它自己的目錄下(比如:『c:\nasm')

該包中會包含有四個可執行文件:NASM 可擬行文件'nasm.exe'和'nasmw.exe',還有
NDISASM 可執行文件'ndisasm.exe'和'ndisasmw.exe'。文件名以'w'結尾的是'Win32'
可執行格式。是運行在'Windows 95'或'Windows NT'的 Intel處理器上的,另外的是
16 位的'DOS'可執行文件。

NASM 運行時需要的唯一文件就是它自己的可執行文件,所以可以拷貝'nasm.exe'
和'nasmw.exe'的其中一個到你自己的路徑下,或者可以編寫一個'autoexec.bat'把
nasm 的路徑加到你的'PATH'環境變數中去。(如果你只安裝了 Win32 版本的,你可能
希望把文件名改成'nasm.exe'。)
就這樣,NASM 裝好了。你不需要為了運行 nasm 而讓'nasm'目錄一直存在(除非你把它
加到了你的'PATH'中,所以如果你需要節省空間,你可刪掉它,但是,你可能需要保留
文檔或測試程序。

如果你下載了 DOS 版的源碼包,'nasmXXXs.zip',那'nasm'目錄還會包含完整的 NASM源
代碼,你可以選擇一個 Makefiles 來重新構造你的 NASM 版本。

注意源文件`insnsa.c', `insnsd.c', `insnsi.h'和`insnsn.c'是由'standard.mac'中
的指令自動生成的,盡管 NASM0.98發布版中包含了這些產生的文件,你如果改動了
insns.dat,standard.mac或者文件,可能需要重新構造他們,在將來的源碼發布中有
可能將不再包含這些文件,多平台兼容的 Perl可以從 www.cpan.org 上得到。

⑩ 我下了個nasm編譯器,但不知道應該怎麼使用,麻煩用過的人可以教教我,謝謝!!!

一般用nasm都是把匯編文件.asm編譯成執行文件.bin格式的二進制文件

先要找到你想編譯的文件,我的是在F盤OS文件夾下!

第一步:先轉到你自己的文件夾下!如圖,先輸入F:

跳到F:目錄下,再用cd命令轉換路徑(OS是我自己的文件夾下,你自己用你自己的)

第二步:就是編譯了!如圖nasma.asm-ot.bin

其中a.asm是你要編譯的文件,t.bin是編譯後的文件,名字自定!

編譯之後就已經成功了!!!

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:748
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1010
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:718
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:878
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:774
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1124
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:349
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:227
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:911
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:875