回 帖 发 新 帖 刷新版面

主题:[讨论]怎么不让我输入啊

要求输入一个字母字符串以回车结束同时保存到BUF开始的缓冲区当中,并将其中每一个字母(A—Z,忽略大小写)的个数分别存放到CUNT开始的26个字节单元当中(最好以BCD码形式存储)。
我编程如下:
DATA  SEGMENT
MSG DB 'Please input an alphabet string,CR to finish:',0AH,0DH,'$'
BUF  DB 255 DUP(?)
COUNT DB 26 DUP(0)
biao db 40h
shu db 27
DATA  ENDS
code segment
   assume cs:code,ds:data
main     proc far
start:  mov ax,0
    mov si,0
    mov di,0

    mov ax,data
        mov ds,ax
    mov ah,09h
    mov dx,offset msg
    int 21h
        
    mov dx,offset buf;调用输入,怎么就不执行呢?
    mov ah,0ah
    int 21h
    sub di,di
xiayige:  dec shu
    mov si,0
    
    mov bl,0
    inc di
    inc biao    
    mov cx,buf+1
     mov si,1
    mov al,biao
next:     inc si
    cmp al,buf+si
    loopne next
    inc bl
    add al,20h
           mov si,1
nextda:    inc si
    cmp al,buf+si
    loopne nextda
    inc bl
    mov count[di],bl
        jmp shuchu
hui:    cmp shu,0
        jne xiayige
    jmp over
shuchu: mov dl,biao
        mov ah,02h
    int 21h
    mov dl,3ah
        mov ah,02h
    int 21h
    mov dl,bl
        mov ah,02h
    int 21h
    mov dl,' '
        mov ah,02h
    int 21h
       jmp hui
over:   ret
main endp
 code ends
  end start
最后运行时,调用中断21,并没有 让我输入字符就输出了

回复列表 (共2个回复)

沙发

utjutkutiuouiu

板凳

可能少了mov ah 4c00h
int 21h

我来回复

您尚未登录,请登录后再回复。点此登录或注册