對乙個簡單匯程式設計序分析

2021-10-02 13:14:23 字數 1227 閱讀 8944

程式:

assume	cs:codesg

codesg segment

mov ax,0123h

mov bx,0456h

add ax,bx

add ax,ax

mov ax,4c00h

int 21h

codesg ends

end

偽指令

偽指令是寫給編譯器看的,cpu不會執行,在源程式中,包括兩種指令,乙個是彙編指令,乙個是偽指令。彙編指令會生成對應的機器碼,而偽指令不會生成機器碼,最終不會被cpu執行

segment和ends

segment和ends是一對成對使用的偽指令,這是在寫可被編譯器編譯的匯程式設計序時必須要用到的一對偽指令。

功能:定義乙個段,segment說明段的開始,ends說明段的結束,乙個段必須有乙個名稱來標識,格式:

段名		segment

:段名 ends

比如上面程式中:

codesg	segment

:codesg ends

乙個匯程式設計序由多個段組成,乙個有意義的匯程式設計序中至少要有乙個段,這個段用來**

end功能:乙個匯程式設計序的結束標記

注意:要分清楚end和ends,end是整個程式結束的標誌,ends是乙個段的結束

源程式中的程式

源程式就是我們寫的**,可以將源程式檔案中所有的內容稱為源程式,最終由計算機執行的才叫程式

標號

彙編源程式中,除了彙編指令和偽指令外,還有些標號,比如codesg。乙個標號指代乙個位址,比如codesg在segment前面,作為乙個段的名稱,這個段的名稱最終將被編譯,連線程式處理為乙個段的段位址

程式的返回

mov		ax,4c00h

int 21h

這兩條指令所實現的功能就是程式返回

在最後再說一下程式是由段構成的

簡單的匯程式設計序分析

section data section text globl start start movl 1,eax movl 4,ebx int 0x80 將這段程式儲存為hello.s,然後用彙編器as把匯程式設計序中的助記符翻譯成機器指令 彙編指令與機器指令是對應的 生成目標檔案hello.o。然後用...

第乙個匯程式設計序hello world

程式原始碼如下 assume cs code,ds data 定義 段和資料段框架 data segment 資料段 msg db hello world 定義字串 data ends code segment 段 start mov ax,data mov ds,ax 資料段初始化 mov bx,...

01 第乙個匯程式設計序

在閱讀 x86組合語言 從實模式到保護模式 這本書的時候,從b站上看到 教程,使用虛擬機器然後將彙編檔案寫入磁碟0面0扇區,然後啟動,在螢幕輸出字元,這個程式本身就很簡單,之前學習過王爽的彙編,知道視訊記憶體位置08b00h,字低8位是ascii編碼,高8位是字元的顏色 但是在看 的 發現不同之處 ...