A. linux下nasm到底怎麼用
依我看,你還不如先在linux上搭建安卓開發環境,在linux上自行編譯出nasm的elf文件,然後放到模擬器裡面測試。 至於編譯nasm,應該不難,源碼下好,一般都是./configure make make install 三個步驟
B. 我下了個nasm編譯器,但不知道應該怎麼使用,麻煩用過的人可以教教我,謝謝!!!
一般用nasm都是把匯編文件.asm編譯成執行文件.bin格式的二進制文件
先要找到你想編譯的文件,我的是在F盤OS文件夾下!
第一步:先轉到你自己的文件夾下!如圖,先輸入F:
跳到F:目錄下,再用cd命令轉換路徑(OS是我自己的文件夾下,你自己用你自己的)
第二步:就是編譯了!如圖nasma.asm-ot.bin
其中a.asm是你要編譯的文件,t.bin是編譯後的文件,名字自定!
編譯之後就已經成功了!!!
C. 我在linux里用nasm編譯成.o文件之後,用gcc連接就會報錯,是不是和我的linux是64位的有關
Nasm只能是i386的,與64位不兼容。推薦學一下現代匯編(用as編譯的)
D. NASM是干什麼用的
匯編出不同平台下的可執行文件,以提高程序的高移植性,用了這個之後,可以生成不同處理器架構的目標代碼。
E. nasm的hello world
匯編的編譯器有masm tasm nasm。你是初學者就用masm吧 ide就不要用了 有是有 像masmplus radmasm都是不錯的 但是初學的話也用不到。
下面的代碼我編譯過了 可以顯示hello word!圖我就不上了。
data segment
db 'HELLO WORD!'
data ends
assume ds:data,cs:code
code segment
start:mov ax,data
mov ds,ax //置段寄存器ds值
mov ax,0b800H
mov es,ax //置段寄存器es值
mov cx,11 //設置循環次數
xor bx,bx //清bx值
xor di,di //清di值
s1:
mov al,[di]
mov byte ptr es:[bx],al //將hello word!每一位送入顯存
add bx,2 //送下一位
inc di
loop s1
mov ax,4c00h
int 21h //將dos控制交還給command
code ends
end start
用masm編譯 命令是masm+文件名 編譯出obj之後 link+文件名。
F. 用NASM能將asm結尾的文件編譯成exe么該怎麼處理
可以吧,選擇相應平台的版本,nasm -h 有簡單的幫助的。
對 x86 也可以使用 Masm5/6 或 Masm32 來做,分別是 dos16 類或 Win32 類的程序。
不同匯編軟體,對 asm 源程序的格式要求和支持也可能是不一樣的。
G. 匯編語言編譯器的NASM
NASM是一個為可移植性與模塊化而設計的一個80x86的匯編器。它支持相當多
的目標文件格式,包括Linux和'NetBSD/FreeBSD','a.out','ELF','COFF',微軟16
位的'OBJ'和'Win32'。它還可以輸出純二進制文件。它的語法設計得相當的簡
潔易懂,和Intel語法相似但更簡單。它支持'Pentium','P6','MMX','3DNow!',
'SSE' and 'SSE2'指令集,
H. 求一個會一點80x86,nasm匯編的人,初學者有一點問題想請教
1、求編譯器
針對Intel80x86系列的編譯器主要有三種:MASM、TASM和NASM,它們只是對一些標識符如常量、變數、操作符及偽指令的定義和要求不同,從而導致表面上的一些差異。但實質上,最終都把匯編語言源程序翻譯成Intel80x86系列CPU能夠執行的機器碼。
使用哪種編譯器,除了方便性之外,還有個個人喜好問題。用MASM的,比較普遍;而用TASM的,也不在少數。在純DOS年代,我用了好幾年的TASM,感覺不錯。
進入Windos年代後,今年2月初開始撿起匯編語言,也只限於Intel8086、8088,用過鍾家民的集成匯編開發環境,但這是一款收費軟體,免費版的濾掉了很多功能,所以,棄之不用。看來,大眾化的軟體,收費好像沒什麼前途。近日,用了MASMPlus 1.2,是一個免費的集成匯編開發環境,感覺不錯,就暫時給你推薦這個吧。下載地址:http://www.aogosoft.com
2、簡單的程序樣本。
; 本程序在MASMPlus 1.2集成環境下通過編譯,經過調試,運行正確。
Data Segment
Hello db 'hello world!$'
Data Ends
Code Segment
Assume CS:Code,DS:Data
Start: mov ax,Data
mov ds,ax
lea dx,Hello
mov ah,9
int 21h
mov ah,1
int 21h
mov ah,4ch ;結束程序
int 21h
Code ENDS
END Start ;編譯到此結束
補充回答:我是原來3樓的,把編譯後的可執行文件運行結果插圖於此。