鱼C论坛

 找回密码
 立即注册
查看: 2030|回复: 5

In 和out 还是不懂

[复制链接]
发表于 2012-7-21 15:34:19 | 显示全部楼层 |阅读模式
1鱼币
in 是写入端口   
out 是写出端口
那么端口是不是相当与地址?
外设都是从这同一地址获取数据的吗?

第68课:显示月份代码中
mov al,8               ;8是数据,
out 70h,al            ;将8写入端口70h,不是地址?写入70h端口这行有什么用
in al,71h              ;是将数据8写出端口到al寄存器中吗?这行有什么用

看完这节不懂,,求帮忙

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-7-21 15:37:06 | 显示全部楼层
显示 月份 代码
code segment
start:
     mov al,8
     out  70h,al
     in al,71h
     mov ah,al
     mov cl,4
     shr ah,cl
     and al,00001111b
.............................
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-21 15:46:44 | 显示全部楼层
本帖最后由 炒饭 于 2012-7-22 00:17 编辑

就这一端口,外设又怎么访问, 那么想多次读取,又是怎样的原理
70端口进去的数,怎样在71端口读取

看了资料后  out 70h,al   ;写入要访问的地址
                   in al,71h     ;取出访问地址中的值

那么又有一问题,怎么往该地址中写入数据呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-22 14:36:39 | 显示全部楼层

out 70h,al      ;给70h端口地址
mov al,31h     ;al放写入的数据
out 71h,al       ;写入al,地址在70h那
(我也不很明白,in al,70h合法吗?)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-4 23:11:52 | 显示全部楼层
端口70h用来存放地址单元,如8,
端口71h用来存放上面地址单元如8所对应的地址所存放的数据
这两个是配套的。
只要在端口70h给出了地址单元,则立马可以从端口71h中取出该地址单元对应的地址所存的数据
而端口的读写的话,都是用al

mov al,8               ;8号地址单元
out 70h,al            ;将8写入端口70h,会自动算出相应的地址,如xxxx,
in al,71h              ;取出地址xxxx所存放的一个字节数据到al中

mov al,0
out 71h,0           ;将0写入,即地址xxxx所对应的数据变为0
in al,71h              ;然后读取出地址xxxx所存放的一个字节数据到al中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-8-4 23:13:14 | 显示全部楼层
附检测点14.1
  1. assume cs:code
  2. code segment
  3.         start:
  4.                 mov bx,0b800h
  5.                 mov es,bx
  6.                 mov si,160*12+78
  7.                
  8.                 mov al,2
  9.                 out 70h,al
  10.                 in al,71h
  11.                
  12.                 mov byte ptr es:[si],al
  13.                 mov byte ptr es:1[si],01110000b
  14.                
  15.                 mov al,0
  16.                 out 71h,al
  17.                 in al,71h
  18.                
  19.                 mov byte ptr es:2[si],al
  20.                 mov byte ptr es:3[si],01110000b
  21.        
  22.                 mov ax,4c00h
  23.                 int 21h
  24. code ends
  25. end start
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-10 09:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表