关于汇编IN OUT的一个小问题

在完成微机作业时,使用了OUT20HAL指令,引发了关于端口寻址方式的讨论。了解了在IA-32处理器上,OUT指令用于将累加器中的数据输出到指定端口,端口地址若在0-FFh范围内,可以直接作为常量使用,而无需存放在DX寄存器中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写微机作业时我使用了一句汇编

OUT 20H AL 

老师给的评语是先将20H放入DX中,我翻了一下书,发现书上就是这样用的,然后查了一下资料[1]
在这里插入图片描述
但是这个资料又使我想到了另外一个问题,对于0~255以内的端口,如果先将其放入DX中,那么会不会出现一些问题?
然后网上搜到了别人的说法

说明:将累加器中的一个字节或字输出到端口(IA-32处理器上可以向端口输出一个双字)。端口地址如果在范围0-FFh之间,可以是一个常量,也可以在DX中存放0-FFFFh之间的端口地址。

由此可见,我并没有写错,老师给的说明也只是一个增强通用性的建议而已

参考
[1] 王爽. 汇编语言 第2版[M].北京:清华大学出版社.2008.4,266

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值