鱼C论坛

 找回密码
 立即注册
查看: 2818|回复: 1

键盘输入显示字符串问题

[复制链接]
发表于 2018-4-5 19:34:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
下面的代码编译运行之后,按任意键退出,我都怀疑虚拟8086能不能运行这个程序了


;最基本的字符串输入程序,需要具备下面的功能
;1.在输入的同时需要显示这个字符串
;2.一般输入回车符后,字符串输入结束
;3.能够删除已经输入的字符

;子程序参数
;dh 显示位置_行
;dl 显示位置_列
;ds:si 指向字符串的首地址,字符串以0结尾


assume cs:code

code segment
start:
        call getstr

       

return:
        mov ax,4c00h
        int 21h

getstr:
        push ax

getstrs:
        mov ah,0
        int 16h
       

        cmp al,20h
        jb nochar
        mov ah,0
        call charstack
        mov ah,2
        call charstack
        jmp getstrs

nochar:
        cmp ah,0eh
        je backspace
        cmp ah,1ch
        je enter1
        jmp getstrs

backspace:
        mov ah,1
        call charstack
        mov ah,2
        call charstack
        jmp getstrs
enter1:
        mov al,0
        mov ah,0       
        call charstack
        mov ah,2
        call charstack

        pop ax
        ret

       




charstack:
        jmp charstart
        table dw charpush,charpop,charshow
        top dw 0
charstart:
        push bx
        push dx
        push di
        push es

        cmp ah,2        ;ah功能号大于2退出
        ja sret
        mov bl,ah
        mov bh,0
        add bx,bx
        jmp word ptr table[bx]        ;功能号跳转

charpush:
        mov bx,top
        mov [si][bx],al
        inc top
        jmp sret


charpop:
        cmp top,0
        je sret
        dec top
        mov bx,top
        mov al,[si][bx]
        jmp sret

charshow:
        mov bx,0b800h
        mov es,bx
        mov al,160
        mov ah,0
        mul dh
        mov di,ax
        add di,dx
        mov bx,0

charshows:
        cmp bx,top
        jne noempty
        mov byte ptr es:[di],' '
        jmp sret

noempty:
        mov al,[si][bx]
        mov es:[di],al
        mov byte ptr es:[di+2],' '
        inc bx
        add di,2
        jmp charshows

sret:        ret

code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-23 07:11:32 | 显示全部楼层
运行进入死循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-28 23:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表