下面是程序,求高手解答!
datareasegment
msglengthdb25
Mynamedb\'20091695songyahui\',13,10,\'$\'
msg0db\'IlikeMyIBM-PC\',0dh,0ah
;\'IlikemyIBM-PC\'
msg1db\'Ilikemusic\',13,10
msg2db\'Mynameissnow\',13,10
msg3db\'Songyahuiismygirl\',13,10
msg4db\'IlikewatchingTV\',13,10
msg5db\'Ilikeplaying\',13,10
msg6db\'Iliketobethefirst\',13,10
msg7db\'Ilikequiet\',13,10
msg8db\'Iliketohaveawalk\',13,10
msg9db\'Ibelievemyself\',13,10
errmsgdb\'error!invalidparameterduiay\',13,10,\'$\'
promptmsgdb\'Pleaseinputaninteger(0-9):\',13,10,\'$\'
datareaends
stacksegment
db256dup(0)
toslabelword
stackends
prognamsegment
mainprocfar
assumecs:prognam,ds:datarea,ss:stack
start:
movax,stack
movss,ax
movsp,offsettos
pushds
subax,ax
pushax
movax,datarea
movds,ax
movdx,offsetmsg0
movah,9
int21h
calldispMyname
begin:
movdx,offsetpromptmsg
movah,9
int21h
movah,1
int21h
subal,\'0\'
jcerror
cmpal,9
jaerror
movbx,offsetmsg0
mulmsglength
addbx,ax
calldisplay
jmpbegin
error:movbx,offseterrmsg
calldisplay
ret
displayprocnear
movcx,30
disp1:movdl,[bx]
calldispchar
incbx
loopdisp1
movdl,0dh
calldispchar
movdl,0ah
calldispchar
ret
displayendp
dispMynameprocnear
pushax
pushdx
pushds
MOVAH,9
MOVDX,SEGMyname
MOVDS,DX
MOVDX,OFFSETMyname
Int21h
Popds
Popdx
Popax
ret
dispMynameendp
dispcharprocnear
movah,2
int21h
ret
dispcharendp
mainendp
prognamends
endstart
|