接下來我們看壹下EAX作為邏輯累加其的用法。就是說在四則運算裏,EAX寄存器裏可以保存壹個操作數。加減就不討論了,看壹下乘除法。除法運算中,被除數默認是存放在EAX寄存器中;乘法運算時,壹個數默認也是放在EAX寄存器中,最後的乘積默認還是保存在EAX中。以乘法運算為例:
點擊(此處)折疊或打開
; mul.asm
extern printf,exit ; 我們在匯編中調用C庫的printf和exit函數,所以要用extern關鍵字對printf和exit進行聲明。
SECTION .data ; 數據段
var1: dd 40
var2: dd 20
fmt: db "result=%d", 10, 0 ; The printf format, "\n",'0'
SECTION .text ; 代碼段.
global _start
_start:
mov eax, [var1] ; 乘數1
mov ebx, [var2] ; 乘數2
mul ebx ; 執行乘法運算,結果保存在EAX寄存器裏。
push eax ; result is here in EAX
push dword fmt ; address of ctrl string
call printf ; Call C function
push dword 0
call exit