組合語言 子程式

2021-10-06 05:25:03 字數 1434 閱讀 1279

**舉例

子程式呼叫指令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 ...