谁知道汇编里0ah怎么用?

来源:百度知道 编辑:UC知道 时间:2024/06/30 05:09:00
谁知道汇编里0ah怎么用?

真郁闷,刚才敲了一大通,居然没有发送成功!555
我想你是要问DOS的0ah号功能调用吧?
它的功能是完成从键盘接收一个字符串并存放到内存的规定缓冲区中。
它的入口参数:DX的内容设置为内存缓冲区的首地址;ah里面放10;然后利用int 21h调用就行了。
这里的缓冲区定义,格式上有规定:缓冲区的第0个字节表示字符串的最大长度;第1个字节一般初始化为0,调用结束后会由系统自动存入实际数据的字符个数;第2个字节开始才是存放输入字符的ASCII码。
比如在数据段有如下定义:
buff db 5,0,5 dup(0)
这里的5表示字符串最大长度为5个字符;0占用的那个字节在调用结束后会被放入实际输入的字符个数;5 dup(0)开辟5个字节单元,存放输入的字符的ASCII码。
在代码段用下面的指令进行调用:
lea dx,buff
mov ah,10
int 21h
运行时输入“ABC”
则调用结束后,内存的buff单元的内容应该是:05H,03H,41H,42H,43H,00H,00H
:)明白了没有啊?

真郁闷,刚才敲了一大通,居然没有发送成功,555
我想你是要问DOS的0ah号功能调用吧?
它的功能是完成从键盘接收一个字符串并存放到内存的规定缓冲区中。
它的入口参数:DX的内容设置为内存缓冲区的首地址;ah里面放10;然后利用int 21h调用就行了。
这里的缓冲区定义,格式上有规定:缓冲区的第0个字节表示字符串的最大长度;第1个字节一般初始化为0,调用结束后会由系统自动存入实际数据的字符个数;第2个字节开始才是存放输入字符的ASCII码。
比如在数据段有如下定义:
buff db 5,0,5 dup(0)
这里的5表示字符串最大长度为5个字符;0占用的那个字节在调用结束后会被放入实际输入的字符个数;5 dup(0)开辟5个字节单元,存放输入的字符的ASCII码。
在代码段用下面的指令进行调用:
lea dx,buff
mov ah,10
int 21h
运行时输入“ABC”
则调用