为输入的字符串添加'$'时遇到的问题

popy007 2003-10-20 03:29:47
我想编写一个程序输入一个字符串,然后再把它打印出去。

由于assembly中的输入字符串要加上一个'$',才能够正确的

打印出去,所以为了避免每次输入时都要多打一个'$',我

打算编程为输入的字符串加'$':

mov ah, 0ah ;串输入DOS功能号
int 21h ;输入串到缓冲区
;ds:dx 指向缓冲区首地址
;缓冲区的第一个字节保存缓冲区可放置的最大字符数
;缓冲区的第二个字节保存缓冲区实际输入的字符数
;再往后是输入的字符数据

mov bx, dx ;把缓冲区的偏移地址赋予bx
mov cx, [bx+1] ;把缓冲区的第二个字节中的内容也就是实际输入的字符数放到cx中
add bx, 2 ;bx指向缓冲区的第一个字符地址
add bx, cx ;按照输入的字符数跨到字符串结尾处
mov [bx], '$' ;在字符串的结尾添加一个字符串结尾符'$'

add dx, 2 ;修正为缓冲区中第一个字符数据的偏移地址
mov ah, 9 ;串输入DOS功能号
int 21h ;输出串


但是这样编译出来后的程序仍然需要在输入字符串时加'$',没有达到我的

目的。不知道该如何解决,大侠赐教。
...全文
92 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
popy007 2003-10-20
  • 打赏
  • 举报
回复
问题解决,多谢csdsjkk()。
csdsjkk 2003-10-20
  • 打赏
  • 举报
回复
mov cx, [bx+1]
改:
mov cl,[bx+1]
mov ch,0

21,453

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧