上完课在虚拟机里面实现了汇编语言的语句
1.
调用九号功能实现hello显示
格式: MOV DX, 字符串的偏移地址
MOV AH, 09H
INT 21H
功能:在屏幕上显示字符串。
在使用9号功能调用时,应当注意以下问题。
① 待显示的字符串必须先放在内存一数据区(DS段)中,且以‘$’符号作为结束标志。
② 应当将字符串首地址的段基址和偏移地址分别存入DS和DX寄存器中。
其中$显示字符串结束
0100因为不Go 因为对内存的定义不用执行 变量不能被运行
只有指令可以哟。
2.调用0A功能实现字符串输入功能调用
格式: MOV DX, 已定义缓冲区的偏移地址
MOV AH, 0AH
INT 21H
功能:从键盘接收字符,并存放到内存缓冲区。
在使用0AH号功能调用时,应当注意以下问题。
① 执行前先定义一个输入缓冲区,缓冲区内第一个字节定义为允许最多输入的字符个数,字符个数应包括回车符0DH在内,不能为“0”值。第二个字节保留,在执 行程序完毕后存入输入的实际字符个数。从第三个字节开始存入从键盘上接收字符的ASCII码。若实际输入的字符个数少于定义的最大字符个数,则缓冲区其他 单元自动清0。若实际输入的字符个数大于定义的字符个数,其后输入的字符丢弃不用,且响铃示警,一直到输入回车键为止。整个缓冲区的长度等于最大字符个数 再加2。
② 应当将缓冲区首地址的段基址和偏移地址分别存入DS和DX寄存器中。
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
最后 感谢最可爱的皮皮帮我找错 超厉害噢