还四天就考研了,帮帮忙啊,微机原理编程题,谢谢!!!(没分给了,就20分了)

napoleonpan4 2006-01-09 03:49:05
用8255A的PA口工作在方式1,作为输入接口,从输入设备上输入4000B数据送入内存BUFFER缓冲区,试编写相应程序段,设端口地址为60H----63H

答案:方式控制字10110000,(我就知道方式控制字,不懂编程)
mov bx,0
mov cx,4000
mov al, 10110000B // 所以我就知道这一行,是表示对方式控制字初始化的意思。
out 63h, al

again: in al, 62h
test al, 00100000B
jz again
in al,60h
mov buffer[bx], al
inc bx
loop again


汇编语言都忘光了,求高人一行一行的解释一下,我们专业课很少考汇编编程,但今年老师特别画了这一题。一定要帮帮我啊,好人们!!!!!!!!!!!!!!

...全文
310 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhousqy 2006-02-04
  • 打赏
  • 举报
回复
test al, 00100000B //做比较
jz again //如果为0,即 al 等于 00100000B,跳转到 again (是个循环哎...)。。。不符合条件就继续
--------------------
测试al的第5位是不是1,是0的话,不符合,again继续读取控制口吧。
feeboby 2006-01-22
  • 打赏
  • 举报
回复
up
Jiana 2006-01-13
  • 打赏
  • 举报
回复
mov bx,0 ;bx作为偏移量,相当于数组下标
mov cx,4000 ;循环次数,指令loop是依赖于cx来工作的
;因端口一次只读一个字节,要读4000次
mov al, 10110000B ; 所以我就知道这一行,是表示对方式控制字初始化的意思。
out 63h, al ;向控制口写入控制字

again: in al, 62h ;开始循环,读c口寄存器的数值
test al, 00100000B ;判断pc5(IBF,输入寄存器满信号)是否为高电平,1表示满,0不满
jz again ;如果0没满,(跳转到again)一直查询c口,直到PC5为1才执行下一条指令
in al,60h ;如满,CPU读取A口数据
mov buffer[bx], al ;将数据写入buffer(内存里)相应位置
inc bx ;数组下标自增1
loop again ;循环(loop指令将检测cx是否为0,不是则将cx减1,然后跳转到again,否则执行下一条指令)
tudou614 2006-01-13
  • 打赏
  • 举报
回复
up
yzx1983 2006-01-11
  • 打赏
  • 举报
回复
mov bx,0 bx作为偏移量,相当于数组下标
mov cx,4000 这个是循环次数,汇编指令loop是依赖于cx来工作的
mov al, 10110000B // 所以我就知道这一行,是表示对方式控制字初始化的意思。
out 63h, al 向63port写入控制字

again: in al, 62h 开始循环,读62h port
test al, 00100000B 如果62h读出的数据非0010000,表示没有就绪
jz again 如果没有就绪,需要再次检测是否就绪(跳转到again),否则执行下一条指令
in al,60h 就绪,读取数据
mov buffer[bx], al 写入buffer相应位置
inc bx 数组下标自增1
loop again 循环(loop指令将检测cx是否为0,不是则将cx减1,然后跳转到again,否则执行下一条指令)
mmmcd 2006-01-10
  • 打赏
  • 举报
回复
语法就是这样

逻辑上楼主还能理解吧.
Code100000 2006-01-10
  • 打赏
  • 举报
回复
again: in al, 62h //输入吧
test al, 00100000B //做比较
jz again //如果为0,即 al 等于 00100000B,跳转到 again (是个循环哎...)。。。不符合条件就继续向下执行...
in al,60h //还是输入吧
mov buffer[bx], al // 存储
inc bx // bx+1
loop again //loop


忘记了哎...不知道对不对...

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧