初學(xué)匯編
什么是匯編器和鏈接器?
匯編器(assembler):用于將匯編語言源程序轉(zhuǎn)換為機器語言
鏈接器(linker):一種工具程序,把編譯器生成的單個文件組合成一個可執(zhí)行文件
寄存器(register):是 CPU 中被命名的存儲位置,用于保存操作的中間結(jié)果
MASM能創(chuàng)建哪些類型的程序?
32 位保護模式(32-Bit Protected Mode):運行于所有的 32 位和 64 位版本的 Microsoft Windows 系統(tǒng)。他們通常比實模式程序更容易編寫和理解。
64 位模式(64-Bit Mode):運行于所有的 64 位版本的 Microsoft Wimdows 系統(tǒng)。
16 位實地址模式(16-Bit Real-Address Mode):運行于 32 版本的 Windows 和嵌入式系統(tǒng),64 位 Windows 不支持這類程序。
匯編語言和機器語言有什么關(guān)系?
機器語言(machine language):是一種數(shù)字語言,專門設(shè)計成能被計算機處理器(CPU)理解。所有 x86 處理器都理解共同的機器語言。
匯編語言(assembly language):包含用短助記符如 ADD、MOV、SUB 和 CALL 書寫的語句。
匯編語言于機器語言是一對一(one-to-one)的關(guān)系:每一條匯編語言指令對應(yīng)一條機器語言指令。
C++ 和 Java 與匯編語言有什么關(guān)系?
高級語言(如 Python、C++、Java)與匯編語言和機器語言的關(guān)系是一對多(one-to-many)。
int y; int x = (y + 4) * 3;
1
2
// 與之對應(yīng)的匯編 mov eax,y ; y 送入 EAX 寄存器 add eax,4 ; EAX 寄存器內(nèi)容加 4 mov ebx,3 ; 3 送入 EBX 寄存器 imul ebx ; EAX 與 EBX 相乘 mov X,eax ; EAX 的值送入 X
1
2
3
4
5
6
匯編語言可移植嗎?
可移植(portable):一種語言,如果他的源程序能夠在各種各樣的計算機系統(tǒng)中進行編譯和運行,那么這種語言被稱為是可移植的。
匯編語言是不可移植的。因為它是為特定處理器系列設(shè)計的。匯編語言會直接與計算機體系結(jié)構(gòu)相匹配。或者在執(zhí)行時用一種被稱為微代碼解釋器(microcode interpreter)的處理器內(nèi)置程序來進行轉(zhuǎn)換。
常見處理器:Motorola68x00、x86、SUN Sparc、Vax 和 IBM-370
為什么要學(xué)習(xí)匯編語言?
占用內(nèi)存少,是編寫嵌入式程序的理想工具
嵌入式程序:指一些存放在專用設(shè)備中小容量存儲器內(nèi)的短程序。這些設(shè)備有:電話、汽車燃油和點火系統(tǒng)、空調(diào)控制系統(tǒng)、安全系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、顯卡、聲卡、硬盤驅(qū)動器、調(diào)制解釋器和打印機等。
處理仿真和硬件監(jiān)控的實時應(yīng)用程序要求精確定時和響應(yīng)。
高級語言不會讓程序員對編譯器生成的機器代碼進行精確控制。匯編語言則允許程序員精確指定程序的可執(zhí)行代碼。
電腦游戲要求軟件在減少代碼大小和加快執(zhí)行速度方面進行高度優(yōu)化。
匯編語言允許直接訪問計算機硬件,為了提高速度可以對代碼進行手動優(yōu)化。
匯編語言有助于形成對計算機硬件、操作系統(tǒng)和應(yīng)用程序之間交互的全面理解。
一些高級語言對其數(shù)據(jù)表示進行了抽象,這使得他們在執(zhí)行底層任務(wù)時顯得有些不方便,如位控制。在這種情況下,程序員常常會調(diào)用使用匯編語言編寫的子程序來完成他們的任務(wù)。
硬件制造商為其銷售的設(shè)備創(chuàng)建設(shè)備驅(qū)動程序。
設(shè)備驅(qū)動程序(device driver):是一種程序,它把通用操作系統(tǒng)指令轉(zhuǎn)換位對硬件細節(jié)的具體引用。
匯編語言有規(guī)則嗎?
大多數(shù)匯編語言規(guī)則都是以目標(biāo)處理器及其機器語言的物理局限性為基礎(chǔ)的。如:CPU 要求兩個指令操作數(shù)的大小相同。匯編語言的規(guī)則較少。
嵌入式 匯編語言
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。