**舉例
子程式呼叫指令call
格式為 call 子程式名
call相當於jmp
子程式名 相當於 標號
子程式執行完返回到call下一句的語句執行
在子程式中用ret 返回
子程式名proc屬性(far,near)
…子程式名 endp
如果主程式是被執行的第乙個程式,屬性應為far
;主程式
let0:
mov x,
0lea dx,mess1
mov ah,
9int 21h
call let1
call let2
jmp let0
out1:
mov ah,
4chint 21h
let1:
mov ah,
1int 21h
com al,
27//判斷是否為 esc
jz out1:
sub al,
30hjl exit
cmp al,
9jg exit
mov ah,
0xchg ax,x
mov cx,
10mul cx
xchg ax,x
add x,ax
jmp let1
exit:ret
let2:
//查表顯示16進製制
lea dx,mess2
mov ah,
9int 21h
mov bx,x
mov ch,
4mov cl,
4rept1:
rol bx,cl
mov al,bl
and ax,
000fh
mov si,ax
mov dl,hex[si]
mov ah,
2int 21h
dec ch
jnz rept1
retcode ends
end start
組合語言 子程式呼叫
不是很常用的 子程式返回指令 說明 根據段內和段間 有無引數,具體分成4種情況 1 ret 無引數返回 2 ret n 有引數返回 n引數的作用 需要彈出call指令壓入堆疊的返回位址 3 段內返回 偏移位址ip出棧 ip ss sp sp sp 2 4 段間返回 偏移位址ip和段位址cs出棧 ip...
組合語言showStr測試子程式
2017.4.23 name showstr fuction 在指定的位置,用指定的顏色,顯示乙個用0結束的字串 test code 在螢幕的8行3列,用綠色顯示data段中的字串 eg init mov dh,8 8行 mov dl,3 3列 mov cl,2 字元屬性 2 黑底綠色無高亮無閃爍 ...
組合語言 遞迴子程式實現階乘
最近在弄一門課程 組合語言 的複習,覺得這個部分的內容,對於回過頭來理解以往學習的高階語言還是很有幫助的。例題 階乘函式,對於任乙個大於等於0的正整數n,其函式值定義為 fact n 1 當n 0時 fact n n fact n 1 當n 0時 其演算法為 1 測試n 0嗎?是,則令fact n ...