在debug里面实现汇编输出hello 和显示 输入的字符

上完课在虚拟机里面实现了汇编语言的语句
1.
调用九号功能实现hello显示
格式: MOV DX, 字符串的偏移地址
MOV AH, 09H
INT 21H

功能:在屏幕上显示字符串。
在使用9号功能调用时,应当注意以下问题。
① 待显示的字符串必须先放在内存一数据区(DS段)中,且以‘$’符号作为结束标志。
② 应当将字符串首地址的段基址和偏移地址分别存入DS和DX寄存器中。

显示hello
其中$显示字符串结束
0100因为不Go 因为对内存的定义不用执行 变量不能被运行
只有指令可以哟。
2.调用0A功能实现字符串输入功能调用

格式: MOV DX, 已定义缓冲区的偏移地址
MOV AH, 0AH
INT 21H

功能:从键盘接收字符,并存放到内存缓冲区。

在使用0AH号功能调用时,应当注意以下问题。

① 执行前先定义一个输入缓冲区,缓冲区内第一个字节定义为允许最多输入的字符个数,字符个数应包括回车符0DH在内,不能为“0”值。第二个字节保留,在执 行程序完毕后存入输入的实际字符个数。从第三个字节开始存入从键盘上接收字符的ASCII码。若实际输入的字符个数少于定义的最大字符个数,则缓冲区其他 单元自动清0。若实际输入的字符个数大于定义的字符个数,其后输入的字符丢弃不用,且响铃示警,一直到输入回车键为止。整个缓冲区的长度等于最大字符个数 再加2。

② 应当将缓冲区首地址的段基址和偏移地址分别存入DS和DX寄存器中。

0ah
1的存储地址在102 其中100和101用于实现5和0的存储 在汇编的编译语句里面 可以使用20 dup 0实现 20个0的表示。但是debug下面没有dup的定义。

此时定义了五个缓存地址 最多输入四个字符 因为回车键占一个 如图中0D 在输就不能输了

3.借上 将键入的字符串显示出来 还是利用九号功能显示
显示
显示啊

因为字符串偏移地址没有找对在运行时我出现了问题 我用mov dx,100出现了以下问题
错误

关于dh功能调用可以参考
https://blog.csdn.net/xiong_yao/article/details/8262262

最后 感谢最可爱的皮皮帮我找错 超厉害噢

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值