匯編代碼轉(zhuǎn)機器碼工具,AsmToByte是一款匯編代碼轉(zhuǎn)機器碼的小工具,支持地址jmp和call,支持宏匯編,省去了大家手動轉(zhuǎn)換的操作,有需求的朋友們可以下載體驗。
使用方法:
如下圖所示,上方窗口輸入?yún)R編代碼,點擊轉(zhuǎn)換按鈕后,下方機會轉(zhuǎn)換為機器碼,有三種模式。
1.一個源程序從寫出到執(zhí)行的過程
編寫匯編源程序——對源程序進行編譯連接——執(zhí)行可執(zhí)行文件中的程序
2.源程序
在匯編語言源程序中,包含兩種指令,一種是匯編指令,一種是偽指令。匯編指令是有對應(yīng)的機器碼的指令,可以被編譯為機器指令,最終為CPU所執(zhí)行。而偽指令沒有對應(yīng)的機器指令,最終不被CPU所執(zhí)行。而是由編譯器來執(zhí)行,根據(jù)偽指令來進行相關(guān)的編譯工作。
segment和ends是一對成對使用的偽指令。這事在寫可被編譯器編譯的匯編程序時,必須要用到的一對偽指令。segment和ends的功能是定義一個短,segment說明一個段開始,ends說明一個段的結(jié)束。一個段必須有一個名稱來標(biāo)識,使用格式為:
段名 segment
....
....
....
段名 ends
一個匯編程序是由多個段組成的,這些段被用來存放代碼、數(shù)據(jù)或當(dāng)做?臻g來使用。一個源程序中所有將被計算機所處理的信息:指令、數(shù)據(jù)、棧,被劃分到了不同的段中。一個有意義的匯編程序中至少要有一個段,這個段用來存放代碼。
end是一個匯編程序的結(jié)束標(biāo)記,匯編器在編譯匯編程序的過程中,如果碰到了偽指令end,就借宿對源程序的編譯。
assume這條偽指令的含義為“假設(shè)”。用來假設(shè)某一段寄存器和程序中的某一個用segment... ends第一的相關(guān)聯(lián)。
源程序中的“程序”是指源程序中最終由計算器執(zhí)行、處理的指令或數(shù)據(jù)。
匯編程序中,出了匯編指令和偽指令外,還有一些標(biāo)識,比如“codesg”(見書中第四章)。一個標(biāo)識只帶了一個地址。比如codesg在segment的前面,作為一個段的名稱,這個段的名稱最終將被編譯、鏈接程序處理為一個段的段地址。
我們知道,一個程序結(jié)束后,將CPU的控制權(quán)交還給使它得以運行的程序,我們稱這個過程為程序返回。
mov ax,4c00H
int 21H
這兩條指令所實現(xiàn)的功能就是程序返回。
在匯編語言編譯的時候,語法錯誤容易發(fā)現(xiàn),也容易解決。而邏輯錯誤通常不容易被發(fā)現(xiàn)。
匯編程序從寫出到執(zhí)行的過程
編程(Edit)——1.asm——編譯(編譯)——1.obj—— 連接(link)——1.exe——加載(command)——內(nèi)存中的程序——運行(CPU)
- PC官方版
- 安卓官方手機版
- IOS官方手機版