汇编语言 下面两种写法究竟有什么不同? 看到很多地方说 IN AX,21H 表示从端口地址21H读取1字节数···

作者&投稿:卫尹 (若有异议请与网页底部的电邮联系)
端口地址是怎么算出来的 汇编语言~


端口地址,是根据地址译码电路的连线,算出来的。
A7A6 A5A4A3 -- 138 的输入
 0 1 0 0 0  --Y0 输出低电平,选中 8253。
 0 1 1 1 0  --Y6 输出低电平,选中 8255。
此外,A2 A1,有四种组合,分别选中 8253 和 8255 中的四个单元。
   A0,没有使用,可以随意变化,不影响选中某个单元。
   那么,选中的单元,就有两个地址号码。

--80x86 CPU、MCS-51 单片机,这是两种完全不同的硬件。
--硬件不同,汇编语言就不同。
--楼主现在,是把它们混在一起提问。

看到很多地方说 IN AX,21H
表示从端口地址21H读取1字节数据到AL,
从端口地址22H读取1字节到AH,
--对。
--这是 80x86 CPU 汇编语言。

可按老师讲应该写 IN AX,[21H],IN AX,21H
我们老师说是结果为AX=21H 。
--错。
--从没有见过这种写法。
--也许,又有新出现的 CPU 了 ?

还有的说加@、#什么的,凌乱了
--这是 MCS-51 单片机的汇编语言。

楼主的插图,也是 MCS-51 单片机的汇编语言。

下面两种写法究竟有什么不同?

--80x86 CPU、MCS-51 单片机,这是两种完全不同的硬件。
--硬件不同,汇编语言就不同。
--楼主现在,是把它们混在一起提问。

看到很多地方说 IN AX,21H
表示从端口地址21H读取1字节数据到AL,
从端口地址22H读取1字节到AH,
--对。
--这是 80x86 CPU 汇编语言。

可按老师讲应该写 IN AX,[21H],IN AX,21H
我们老师说是结果为AX=21H 。
--错。
--从没有见过这种写法。
--也许,又有新出现的 CPU 了 ?

还有的说加@、#什么的,凌乱了
--这是 MCS-51 单片机的汇编语言。

楼主的插图,也是 MCS-51 单片机的汇编语言。