huang12345683 发表于 2014-11-13 20:12:50

调用显示问题

;问题:
;    字符串输入到键盘缓冲区,然后在调用显示字符串的中断,不能正常显示?
;    是不能直接在从键盘缓冲区显示? 该如何解决
;    网上有教程说调用INT 16 中的0号功能取得键盘输入的数据,但是还是每个字符都要判断处理
;    我是想把字符串全输入,然后在把整个字符串拿到别的地方处理
;    一直没弄成功
;
;
DATAS SEGMENT
   tishi   db 'please input grade:$'
   wraning   db 'input error!$'
   bufsize   db 10
   catchar   db ?
   chartextdb 10 (0)
             db '$'
   grade   db 100 (0)
             db '$'
DATAS ENDS
STACKS SEGMENT
   
STACKS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    mov ah,0   ;功能号
    mov al,3   ;显示方式
    int 10h    ;中断
   
    mov bh,0
    mov dh,0
    mov dl,0
    call setcursor;设置光标在第0行0列
    lea dx,tishi
    call charshow
   
    mov dh,1
    mov dl,0
    call setcursor;置光标在第2行0列
   
    lea dx,bufsize
    mov ah,0ah
    int 21h      ;等待输入字符串
   
   
   
   ; mov cx,catchar
   
   
   
   
    mov dh,2
    mov dl,0
    call setcursor;置光标在第3行0列
   
    mov dx,offset chartext;显示出错????
    call charshow
   
   
    MOV AH,4CH
    INT 21H
   
charshow:
         mov ah,09;显示字符串
         int 21h    ;中断
         ret
               
setcursor:
         mov ah,02
         int 10h         
         ret
         
CODES ENDS
    END START


页: [1]
查看完整版本: 调用显示问题