⑴ 我想學習匯編,看網上說有 x86、masm、tasm這都是什麼,是編輯器還是編譯器他們編譯的程
x86是cpu架構。masm tasm是編譯器,可以運行於windows,我在Linux上一般用gas。不同編譯器支持的匯編代碼語法格式不同。匯編語言風格也分Intel和at&t風格。理論上匯編代碼直接對應機器指令,可以寫任何程序。當然也可以調win32api。只是沒人這么干,因為很繁瑣,相當於你一條一條寫CPU指令了。匯編語言一般只在不得不寫的情況下才寫,比如需要性能最大化,或者指令最少化的場合,例如引導程序。引導扇區只有512位元組,要塞進足夠多的指令完成引導任務只有寫匯編。
⑵ 匯編,編程,VF,BASIC,C語言,MASM,TASM,他們之間是什麼關系
C語言,basic語言都屬於語言.VF,MASM,TASM都屬於編譯器,VF則有IDE界面.MASM,TASM實現的是匯編語言.那麼C語言的編譯器有很多很多,以前的TC(Turbo
C),BC(Borland
C)都是編譯器,用來實現C語言的功能.現在的Visual
Basic,過去的Quick
Basic都是編譯器,用於實現Basic語言.VF(Visual
FoxPro)是微軟Visual
Studio中的組件,和VB一樣.
⑶ 匯編器對符號地址處理的問題 NASM TASM MASM
MOV DX,CF 這一句,任何匯編器都是一樣的(包括你提到的幾種編編譯,以及Debug等),都是將值1234H賦給DX
MOV DX,[CF] 這一句,不同的匯編器的解釋可能會不同,MASM會解釋成和上面第一句一樣,而其他匯編器則解釋成地址(即執行後DX的值為內存地址[1234]處的內容)如果想讓MASM也這樣解釋,必須顯示地給出段地址才可以,比如MOV DX,DS:[CF] (這是MASM和其他編譯器的不同之處)
MOV DX,OFFSET CF 此句中OFFSET是偽指令,指的是CF所在位置偏移,你說的三種編譯都是支持這個偽指令,而另外一些可能不支持。(也就是說,如果CF DW 1234H是程序的第一行代碼,那麼offset CF 的值就是0了)
你可以寫個小程序自己看一下是不是這樣的,如果還有什麼不明白的地方,可以繼續問。
LINUX下一般用NASM的,WINDOWS下我們一般用MASM,至於TASM,一般用於和TC程序的交叉編譯,反正很少用就是了
⑷ 匯編器和編譯器有什麼區別
匯編器(Assembler)是將匯編語言翻譯為機器語言的程序。一般而言,匯編生成的是目標代碼,需要經鏈接器(Linker)生成可執行代碼才可以執行。
匯編語言是一種以處理器指令系統為基礎的低級語言,採用助記符表達指令操作碼,採用標識符表示指令操作數。作為一門語言,對應於高級語言的編譯器,需要一個「匯編器」來把匯編語言原文件匯編成機器可執行的代碼。常用的高級語言編譯器有Microsoft公司的MASM系列和Borland公司的TASM系列編譯器,還有一些小公司推出的或者免費的匯編軟體包等。
編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器(Linker) → 可執行程序 (executables)
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)
⑸ 匯編語言怎麼變成機器指令的
請打開你的計算器
調為16進制,復制B8 3F 00 01 C3 01 C1然後轉為二進制
CPU是只能識別1和0的,准確的來說CPU也不能識別1和0
CPU其實就是一個簡單的電路開關,它對高電平和低電平產生邏輯運算,其中高電平就代表1,低電平就代表0
所以匯編已經很貼近機器語言了,當然你不可能去學習機器語言,因為
mov ax,3FH
add bx,ax
add cx,ax
轉成機器語言就是
根本看不懂吧
說漏了,其實你沒發現即便是匯編還是需要編譯的,這個編譯過程就是將匯編語言轉成機器語言
⑹ 匯編語言編譯器的TASM的用法
TASM是Borland公司推出的匯編編譯器,也是一種使用很廣泛的編譯器,和MASM相比,TASM的升級沒有這么頻繁。TASM早在1.0版本就有了對80386處理器指令的完全支持(MASM要到5.0版本才支持80386指令),1989年推出的1.01版本修正了1.0版的一些錯誤;早期的版本還有TASM 3.0和TASM 4.0,其中4.0版是TASM系列編譯器編寫DOS程序使用最廣泛的版本。
到目前為止,TASM的最後一個版本是5.0版,這個版本支持Win32編程,並單獨為Win32編程附帶有一整套的32位程序:32位的編譯器TASM32.EXE、鏈接器TLINK32.EXE和資源編譯器BRC32.EXE。與這些32位程序對應的16位工具在軟體包中依然存在,文件名為TASM.EXE,TLINK.EXE和BRC.EXE等。
TASM 5.0命令行的使用方法是:
TASM32 [選項] 源文件名[,[目標文件名],[列表文件名],[索引文件名]][;]
在Win32編程時TASM的常用選項如下表所示。
選 項
簡 介
/ml,/mx,/mu
對大小寫是否敏感:ml=全部敏感,mx=全局變數大小寫敏感,mu=不敏感,Win32編程中必須用ml選項
/m#
允許第#次編譯掃描時可以向前引用,一般使用/m2
/i路徑
設定include文字所在的路徑
/l,/la
lst文件的格式:/l為正常格式,/la為擴充格式
/zi,/zd,/zn
符號調試信息的控制:/zi為全部,/zd為僅有行號,/zn為不產生調試信息
TASM和MASM之間的導入庫和目標文件等不能通用,程序員無法用Microsoft的鏈接器來鏈接TASM產生的obj文件,反之亦然,這是因為TASM的庫文件和obj文件一直是OMF格式,與Microsoft使用的COFF格式不兼容
⑺ 匯編語言程序設計中使用哪種軟體工具
1、MASM。
微軟公司為x86微處理器家族開發的匯編開發環境,擁有可視化的開發界面,使開發人員不必再使用DOS環境進行匯編的開發,編譯速度快,支持80x86匯編以及Win32Asm,是Windows下開發匯編的利器。
2、NASM。
全稱The Netwide Assembler,是一款基於80x86和x86-64平台的匯編語言編譯程序,其設計初衷是為了實現編譯器程序跨平台和模塊化的特性。
3、TASM。
Borland公司開發的匯編編譯器,被廣泛用於Turbo C,Quick Basic等編譯器,用作中間過渡編譯。它也能獨立的編譯純匯編或是Win32Asm的代碼。具有編譯快速,高效的特點,至今依然是匯編開發的首選利器。
4、GAS。
GNU匯編器(GNU Assembler),簡稱為GAS,是由GNU計劃所使用的匯編器,GNU的核心精神是自由與分享,所以GAS亦是自由軟體。
5、RadASM。
一款著名的WIN32匯編編輯器,支持MASM、TASM等多種匯編編譯器,Windows界面,支持語法高亮,自帶一個資源編輯器和一個調試器。擁有較強的工程管理功能,加之眾多插件的支持,使得它用匯編語言編寫Windows軟體變得得心應手。
⑻ MASM,TASM,ASM是什麼
ASM:宏匯編。(Macroassembler)
MASM:微軟公司開發的宏匯編,很常用。
TASM:Borland公司開發的宏匯編,也很常用,現在已經與MASM全面兼容。
另外還有NASM:通用網際的宏匯編。適用於跨平台的軟體開發。
⑼ 匯編語言中 mov ds,ax 移動的是ax中的數據還是只是它的一個復制副本
對計算機而言,移動即是復制。移動一個文件到其它地方,也是先復制過去,再把原文件刪除。
mov ds,ax 將ax中的數據賦值給ds,ax中的值不會消失。mov ax,data這句,如果是前面有assume ds:data的情況,是將地址值傳給ax。
由於匯編指令系統龐大,因而需構建指令系統體系,其指令數量龐大,格式復雜,可記憶性差等。指令中最難的是指令所支持的定址方式,其實質就是指令中操作數如何獲取。對於處理器而言,就是如何找到他所需的數據。
但對於計算機底層的匯編語言而言,這種定址方式將涉及大量的計算存儲格式,與 復雜的存儲管理方式緊密相關,因而難以理解。最後,匯編指令還關繫到如何影響標志位,但處理器標志位非常復雜,因而對其機制掌握就比較困難。
(9)tasm編譯器mmx寄存器擴展閱讀:
編譯環境:
用匯編語言等非機器語言書寫好的符號程序稱為源程序,匯編語言編譯器的作用是將源程序翻譯成目標程序。目標程序是機器語言程序,當它被安置在內存的預定位置上後,就能被計算機的CPU處理和執行。
匯編的調試環境總的來說比較少,也很少有非常好的編譯器。編譯器的選擇依賴於目標處理器的類型和具體的系統平台。一般來說,功能良好的編譯器用起來應當非常方便,比如,應當可以自動整理格式、語法高亮顯示,集編譯、鏈接和調試為一體,方便實用。
對於廣泛使用的個人計算機來說,可以自由選擇的匯編語言編譯器有MASM、NASM、TASM、GAS、FASM、RADASM等,但大都不具備調試功能。如果是為了學習匯編語言,輕松匯編因為擁有一個完善的集成環境,是一款非常適合初學者的匯編編譯器。