回 帖 发 新 帖 刷新版面

主题:刚学,这个问题那位大哥帮帮忙.

设8255A的端口地址为60H~63H,要求完成如下功能:每隔5分钟从PA口读入8个开关的状态存入2000H~3000H开始的数据区,工作十小时结束,.
程序如下:
     MOV  AX,3000H
     MOV  DS,AX
     MOV  BX,2000H
     MOV  CX,120
     MOV  AL,10010000B(90)
     OUT  63H,AL
LOP: IN   AL,60H
     MOV  [BX],AL
     INC  BX
     CALL  DELAY5M
     DEC  CX
     JNZ  LOP
     MOV  AH,4CH
     INT  21H


我主要想问下,那个1001000B(90H),还有AH,4CH,以及21H怎么来的?

我碰见了很多这样的问题有什么方法吗?
就是XXXXXH~XXXXXXH 这之间的值又是啥意思?
为什么程序里面的值跟它不一样呢?是怎么样一个运算法?
哪位大哥能耐烦的详细的讲解下,小弟万分感谢!

回复列表 (共1个回复)

沙发

MOV  AH,4CH
     INT  21H
这个问题我可以回答你。

首先,你的机器里有操作系统((比如DOS或者WINDOWS),操作系统的某个程序(DOS中是COMMAND)控制着CPU的使用权,如果一个可执行程序要运行,那么必须获得CPU的使用权。比如CS:IP指向可执行程序的第一条代码。当可执行程序运行完成之后,必须要把CPU的使用权交还给操作系统的某个程序(DOS中是COMMAND)。
     MOV  AH,4CH
     INT  21H
这两条语句的含义就是告诉操作系统程序运行完毕,现在操作系统可以接管CPU.

另外几个问题我没太看明白,麻烦你写详细点好么?

我来回复

您尚未登录,请登录后再回复。点此登录或注册