(汇编语言)17.3 字符串的输入

;子程序:字符串的入栈、出栈、显示
;参数说明:(ah)=功能号,0表示入栈,1表示出栈,2表示显示
;           ds:si指向字符栈空间
;           对于0号功能:(al)=入栈字符
;           对于1号功能:(al)=出栈字符
;           对于2号功能:(dh)、(dl)表示屏幕上的行和列
assume cs:code
code segment
start:
  
   
     mov ax, cs
     mov ds, ax
     mov si, 0
     mov dh, 12
     mov dl, 40
     call getstr
     mov ax,4c00h
     int 21h


;*******************************************************
 ;接收字符串输入子程序
 getstr:
   push ax
   
getstr_s:
   mov ah, 0  
   int 16h
   cmp al, 20h            ;al中存放的是扫描码对应的ASCII码
   jb nochar              ;ASCII码小于20h, 说明不是字符
   
   ;字符入栈
   mov ah, 0              ;ah: 0号功能 字符入栈、al:为入栈数据
   call charstack
   ;显示栈中的字符
   mov ah, 2
   call charstack
   jmp short getstr_s
     
nochar:   
   cmp ah, 0eh  ;退格键的扫描码
   je backspace 
   cmp ah, 1ch  ;Enter键的扫描码
   je enter  
   jmp short getst
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值