关于8086/8088汇编语言的问题

来源:百度知道 编辑:UC知道 时间:2024/06/13 05:54:49
MOV DX, 379H
ask: IN AL, DX ;从379H端口读状态
TEST AL, 1000 0000B ;检测D7位
JZ ask
这是一段用查询方式控制打印机的程序,我想问为什么不能把379H端口地址直接给AX,而先给DX?还有,那几个寄存器的使用有那些不一样的规定呢?
那为什么不能直接给AX呢,应该可以直接把地址读到低八位AL中啊,干嘛要先给BX再给AX?

in\out两条指令的格式规定:
当端口地址大于255(0ffh)时,指令中不能直接写出,而必须通过dx寄存器间接给出,就这么简单。

DX里面是379H端口地址。然后从端口读到的数据给AX丫。。这两个好像没啥争议吧