8086系列(19) 遞迴

2021-10-11 03:03:06 字數 1197 閱讀 7353

將字串反序輸出

用bx儲存字串str的首位址,每次遞迴呼叫revers,當遇到』$'符時返回,在返回的途中輸出每個字元。

datasg segment

str db 'abcde','$'

datasg ends

;-----------------

codesg segment

main proc far

assume cs:codesg,ds:datasg,es:datasg

start:

push ds

sub ax,ax

push ax

mov ax,datasg

mov ds,ax

mov es,ax

;-------------------

mov bx,offset str

push bx ;bx指向的是str的位址

call reverse

pop bx

; mov dl,[bx]

; mov ah,02

; int 21h

ret;-------------------

main endp

;----------------reverse-------------

reverse proc near

push bp

mov bp,sp

; push bx ;保護上一次遞迴呼叫時候的暫存器bx

mov si,[bp+4] ;mov bx,[bp+4]

mov al,[si] ;mov al,[bx]

cmp al,'$'

je return

re_call:

inc bx

push bx

call reverse

pop bx

dec bx

mov dl,[bx]

mov ah,02

int 21h

return:

; pop bx

pop bp

retreverse endp

;----------------reverse-------------

codesg ends

end start

8086系列(8) 邏輯尺

設有陣列x和y。x陣列中有x1,x10 y陣列中有y1,y10。試編制程式計算z1 x1 y1,z2 x2 y2,z3 x3 y3,z4 x4 y4,z5 x5 y5,z6 x6 y6,z7 x7 y7,z8 x8 y8,z9 x9 y9,z10 x10 y10,結果存入z陣列。對於這種問題可以使用...

8086系列(21) 作業6 9

編寫乙個子程式巢狀結構的程式模組,分別從鍵盤輸入姓名及8個字元的 號碼,並以一定的格式顯示出來 主程式 telist 1 顯示提示符input name 2 呼叫子程式input name輸入姓名 3 顯示提示符input a telephone number 4 呼叫子程式inphone輸入 號碼...

8086系列(11) 氣泡排序改進

給乙個長度為n的陣列進行氣泡排序。datasg segment array dw 3,5,6,1,4,2,9,7,0,8 n dw 10 datasg ends codesg segment assume ds datasg,cs codesg,es datasg main proc far sta...