編寫乙個子程式巢狀結構的程式模組,分別從鍵盤輸入姓名及8個字元的**號碼,並以一定的格式顯示出來
主程式 telist:
(1) 顯示提示符input_name:
(2) 呼叫子程式input_name輸入姓名
(3) 顯示提示符input a telephone number:
(4) 呼叫子程式inphone輸入**號碼
(5) 呼叫子程式printline顯示姓名及**號碼
子程式input_name:
(1) 呼叫鍵盤輸入子程式getchar,把輸入的姓名存放在inbuf緩衝區中
(1) 把inbuf中的姓名移入輸出行outname
子程式inphone:
(1) 呼叫鍵盤輸入子程式getchar,把輸入8位**號碼存放在inbuf緩衝區中
(1) 把inbuf中的**號碼移入輸出行outphone
子程式 printline:
顯示姓名及**號碼:
name tel
** **
datasg segment
inbuf label byte ;接受**號碼輸入
maxplen db 9
actplen db ?
phone db 9 dup(?)
mess1 db 'input_name:','$'
mess2 db 'input a telephone number:','$'
mess3 db 13,10,'$'
mess4 db 'name',8 dup(' '),'tel',0dh,0ah,'$'
mess5 db ' ','$'
outname db 8 dup(' '),'$'
outphone db 8 dup(' '),'$'
datasg ends
;-------------
codesg segment
main proc far
assume ds:datasg,cs:codesg,es:datasg
start:
push ds
xor ax,ax
push ax
mov ax,datasg
mov ds,ax
mov es,ax
;------------
mov ah,09h ;顯示提示符mess1
lea dx,mess1
int 21h
call input_name
mov ah,09h ;顯示提示符mess2
lea dx,mess2
int 21h
call inphone
call printline
;------------
exit:
retmain endp
;-----------input_name------------
input_name proc near
call getchar
full: ;填充空白字元
mov bx,actplen
mov bh,0
mov cx,8
sub cx,bx
cmp cx,0
jz next
i20:
mov phone[bx],20h
inc bx
loop i20
next:
cldmov si,offset phone
mov di,offset outname
mov cx,8
rep movsb
retinput_name endp
;-----------------------------------
;-----------getchar-----------------
getchar proc near
mov ah,0ah ;呼叫0a號中斷輸入到緩衝區
lea dx,inbuf ;ds:dx 為緩衝區首位址
int 21h
mov ah,02h ;換行
mov dl,0ah
int 21h
retgetchar endp
;---------------------------------
;----------inphone----------------
inphone proc near
call getchar
cldmov si,offset phone
mov di,offset outphone
mov cx,8
rep movsb
retinphone endp
;---------------------------------
;--------printline----------------
printline proc near
mov ah,09h ;顯示提示符name tel
lea dx,mess4
int 21h
mov ah,09 ;顯示outname
lea dx,outname
int 21h
mov ah,09
lea dx,mess5
int 21h
mov ah,09 ;顯示outname
8086系列(19) 遞迴
將字串反序輸出 用bx儲存字串str的首位址,每次遞迴呼叫revers,當遇到 符時返回,在返回的途中輸出每個字元。datasg segment str db abcde datasg ends codesg segment main proc far assume cs codesg,ds dat...
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系列(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...