assume cs:code, ds:data, ss:stack
; 棧段
stack segment
db 100 dup(0)
stack ends
; 數據段
data segment
db 100 dup(0)
string db 'Hello!$'
data ends
; 代碼段
code segment
start:
; 手動設置ds、ss的值
mov ax, data
mov ds, ax
mov ax, stack
mov ss, ax
; 業務邏輯
call print
mov ax, 1122h
mov bx, 3344h
add ax, bx
; 退出
mov ax, 4c00h
int 21h
; 打印字符串
print:
; ds:dx告知字符串地址
mov dx, offset string
mov ah, 9h
int 21h
ret
code ends
end start
複製代碼
call 標號: 將下一條指令的偏移地址入棧後 轉到標號(函數)處執行指令bash
ret:將棧頂的值出棧,賦值給ip函數
call和ret聯合使用的做用其實就是高級語言中的函數調用ui