谁帮我看看这道汇编题到底哪错啦

来源:百度知道 编辑:UC知道 时间:2024/06/19 01:29:08
编了很久
目的是:输入一段字符串STRING,然后删除其中的数字,再把新串显示出来,下面是我编的。

data segment
string db 100,0,100 dup(?)
data ends
code segment
assume cs:code,ds:data
start:
mov bx,seg string
mov ds,bx
lea dx,string
mov ah,0Ah
int 21h

mov bx,0
mov cx,0
mov cl,string[1]
mov si,0

lop:

cmp string[bx+2],'0'

jb cun
cmp string[bx+2],'9'
ja cun
inc bx

jmp pan

cun:
mov dl,string[bx+2]
mov string[si],dl
add si,1
inc bx
mov string[si],'$'

pan: cmp bx,cx
jb lop

mov string[si],'$'

lea dx,string

mov ah,9
int 21h

mov ah,4ch
int 21h
code ends

;其实你的程序是没出错的,只是每次输出都在同一个地方,变换后的字符串
;只覆盖了前面部分,后面部分没被覆盖,所以看起来就像是你的$没起作用一
;样,如果你非要区别开来,那你像我这样吧
CRLF MACRO
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
ENDM
data segment
string db 100,0,100 dup(?)
data ends
code segment
assume cs:code,ds:data
start:
mov bx,seg string
mov ds,bx
lea dx,string
mov ah,0Ah
int 21h

mov bx,0
mov cx,0
mov cl,string[1]
mov si,0

lop:

cmp string[bx+2],'0'

jb cun
cmp string[bx+2],'9'
ja cun
inc bx

jmp pan

cun:
mov dl,string[bx+2]
mov string[si],dl
add si,1