《組合語言 基於x86處理器》總結 初窺門徑

2021-08-16 10:30:13 字數 839 閱讀 2330

一、用組合語言在centos下列印helloworld

vim hello.s
並輸入以下內容

#hello.s 

.data # 資料段宣告

msg : .string "hello, world!\\n" # 要輸出的字串

len = . - msg # 字串長度

.text # **段宣告

.global _start # 指定入口函式

_start: # 在螢幕上顯示乙個字串

movl $len, %edx # 引數三:字串長度

movl $msg, %ecx # 引數二:要顯示的字串

movl $1, %ebx # 引數一:檔案描述符(stdout)

movl $4, %eax # 系統呼叫號(sys_write)

int $0x80 # 呼叫核心功能

# 退出程式

movl $0,%ebx # 引數一:退出**

movl $1,%eax # 系統呼叫號(sys_exit)

int $0x80 # 呼叫核心功能

然後執行

as -o hello.o hello.s

ld -s -o hello hello.o

./hello

組合語言**需要經過彙編器轉碼,鏈結器鏈結,才能最終執行

x86組合語言(2) 認識8086處理器

結構如圖 由8個通用暫存器組成,每個暫存器之間都可以傳送資料,其中ax,bx,cx,dh都可以分成高8位和低8位的暫存器 每個暫存器都是16位。ax bx cx dh可以分為高位元組 低位元組 16位處理器中1個字16位,2個位元組 我們改變其中乙個暫存器的值,不影響另乙個,如改變了ah的值,al的...

《ubuntu下x86彙編》之x86處理器

一 處理器基本資訊 cat proc cpuinfo processor 0 vendor id genuineintel cpu family 6 model 23 model name pentium r dual core cpu e5500 2.80ghz processor 1 vendo...

X86處理器架構

包含有暫存器 算術邏輯單元 控制單元 時鐘位址 資料 控制匯流排1 將想要讀讀取的值的位址放在位址匯流排上。2 設定處理器rd 讀取 引腳 改變rd的值 3 等待乙個時鐘週期給儲存器晶元進行響應。4 將資料從資料匯流排複製到目標運算元。1 cpu從被稱為指令佇列的記憶體區域取得指令,之後立即增加指令...