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