输入输出

8086采用I/O端口独立编址
in AL/AX,imm8/DX
out imm8/DX,AL/AX
大于0FFH的端口只能存在DX
读外设(查询)

status:in al,dxtest al,80H;//测标志位jz statusmov dx,100hin al,dx

写外设(查询)

status:mov dx,102Hin al,dxtest al,80Hjnz status;//D7=1,忙,继续查mov dx,100hmov al,charout dx,al

74LS273:锁存。输出锁存寄存器。
74LS244:缓冲。输入缓冲,输出锁存。
A0A_0A0​=0,RD‾=1\overline{RD}=1RD=1,读IRR、ISR、查询自
A0A_0A0​=1,RD‾=0\overline{RD}=0RD=0,读IMR
输入时序

输出时序

选通信号Ready将置1,状态口连在D7D_7D7​上,选通信号置Ready

中断与8259

传送指令装入中断向量。

mov ax,0
mov es,ax
mov bx,N*4;//N为中断类型号
mov ax,offset intproc
mov es:[bx],ax
mov ax,seg intporc
mov es:[bx+2],ax
sti

内部中断:除法错误、溢出、指令单步、断点。
外部中断:NMI、INTR(高电平有效)。NMI类型号为2,边沿触发。
关中断情况:系统复位、中断被响应、CLI。

一条指令的结束是相应NMI的必要条件
普通屏蔽:IMR的DiD_iDi​为1,对应IRiIR_iIRi​屏蔽。
特殊屏蔽:IRiIR_iIRi​被屏蔽时,ISRiISR_iISRi​为0
中断结束:ISRISRISR某位为0
EOI:非自动中断结束,全嵌套清楚优先级最高位。
特殊:配合循环优先权,发EOI清楚ISR对应位。
缓冲:多片级联。非缓冲:单片。
IRR中断请求寄存器,1表示对应位有请求,响应后复位。
IMR中断屏蔽寄存器,0表示允许中断
ISR中断服务寄存器,1表示在被服务
PR优先级判别。
优先级固定方式:从高到低为IR0IR_0IR0​,IR1IR_1IR1​,…IR7IR_7IR7​,完全嵌套
自动循环:初始IR0,...,IR7IR_0,...,IR_7IR0​,...,IR7​,IRiIR_iIRi​被服务后,IRiIR_iIRi​最低,IRi+1mod8IR_{i+1\mod 8}IRi+1mod8​最高
特殊循环:可设置初始最低优先级
普通全嵌套:禁止同级/低级优先权中断
特殊全嵌套:禁止低级中断,在主片。
SP‾/EN‾\overline{SP}/\overline{EN}SP/EN级联方式:主片SP‾=1\overline {SP}=1SP=1,从片SP‾=0\overline{SP}=0SP=0
IR0...IR7IR_0...IR_7IR0​...IR7​中断请求。
CAS0...CAS7CAS_0...CAS_7CAS0​...CAS7​级联引脚双相
CAS2...CAS0CAS_2...CAS_0CAS2​...CAS0​:主片输出、从片输入、级联信号
例如
A0=0,WR‾=0A_0=0,\overline{WR}=0A0​=0,WR=0,写ICW1,OCW2,OCW3ICW_1,OCW_2,OCW_3ICW1​,OCW2​,OCW3​.
A0=1,WR‾=0A_0=1,\overline{WR}=0A0​=1,WR=0,写ICW2−ICW4,OCW1ICW_2-ICW_4,OCW_1ICW2​−ICW4​,OCW1​
OCW1OCW_1OCW1​:中断屏蔽字寄存器,写

in al,81H
and al,11111101B;IR1开放中断
out 81H,al

OCW2OCW_2OCW2​:优先级循环方式和发中断结束命令
EOI=1发中断结束,清除相应位
OCW3OCW_3OCW3​:查询字

mov al,0AH;读IRR的OCW3
out 20H,al
in al,20H;读IRR到AL

中断服务子程序整体流程:保护现场、开中断、中断处理、关中断、恢复现场、中断返回。

intproc proc farpush axpush dsstimov ax,seg donemov ds,axin al,0a0h;读开关状态out 0c0h,al;输出控制ledcmp al,0ffhjnz exitint al,82h;中断屏蔽or al,00000100Bout 82h,al
exit:climov al,20H;EOIout 80H,alpop dspop axiret
intproc endp

8255

D0−D7D_0-D_7D0​−D7​数据线,A0−A1A_0-A_1A0​−A1​地址,CS‾\overline{CS}CS片选,PA0−PA7PA_0-PA_7PA0​−PA7​,PB0−PB7PB_0-PB_7PB0​−PB7​,PC0−PC7PC_0-PC_7PC0​−PC7​
A组:A口、C口高4位。B组:B口、C口低4位。
方式0:无条件/查询。
方式1/2:查询、中断
输入时,8255为数据缓冲。输出时,8255为数据锁存。可知已准备好数据。
方式1输入:STB‾\overline{STB}STB选通(外设准备好数据,将数据锁存、输入)
IBF:输入缓冲区满则,输出
INTRAINTR_AINTRA​:中断请求,输出。
方式1输出:OBF‾\overline{OBF}OBF输入缓冲器满,可取走。
ACK‾\overline{ACK}ACK:外设响应,输入,低有效。
INTRINTRINTR:中断请求,输出。
方式1输出时OBF‾\overline{OBF}OBF有效时输出,外设接受后回送ACK‾\overline{ACK}ACK。
方式2时外设提供ACK‾\overline{ACK}ACK后输出数据

短口 PCiPC_iPCi​ 输入 输出
A端口 PC7PC_7PC7​ OBF‾\overline{OBF}OBF
A端口 PC6PC_6PC6​ ACKA‾/INTEA\overline{ACK_A}/INTE_AACKA​​/INTEA​
A端口 PC5PC_5PC5​ IBFAIBF_AIBFA​
A端口 PC4PC_4PC4​ STBA‾/INTEA\overline{STB_A}/INTE_ASTBA​​/INTEA​
A端口 PC3PC_3PC3​ INTRAINTR_AINTRA​ INTRAINTR_AINTRA​
B端口 PC2PC_2PC2​ STBB‾/INTEB\overline{STB_B}/INTE_BSTBB​​/INTEB​ ACKB‾/INTEB\overline{ACK_B}/INTE_BACKB​​/INTEB​
B端口 PC1PC_1PC1​ IBFBIBF_BIBFB​ OBFB‾\overline{OBF_B}OBFB​​
B端口 PC0PC_0PC0​ INTRBINTR_BINTRB​ INTRBINTR_BINTRB​

输入时序图


输出时序图

方式控制字

D7D_7D7​ D6D_6D6​ D5D_5D5​ D4D_4D4​ D3D_3D3​ D2D_2D2​ D1D_1D1​ D0D_0D0​
1 A方式高位 A方式低位 A输入输出 PC7−PC4PC_7-PC_4PC7​−PC4​输入输出 B方式 B输入输出 PC3−PC0PC_3-PC_0PC3​−PC0​输入输出

其中,0表示输出,1表示输入。

C口位控制字

D7D_7D7​ D6D_6D6​ D5D_5D5​ D4D_4D4​ D3D_3D3​ D2D_2D2​ D1D_1D1​ D0D_0D0​
0 无意义 无意义 无意义 选位 选位 选位 清零/置1

例:

mov dx,303H
mov al,81H
out dx,al
mov al,0FH
out dx,al;(PC7=1)
prn:mov dx,302Hin al,dxtest al,04hjz prn;//查询输入
mov dx,300H;A口
mov al,ah;//ah=打印数据
out dx,al
mov dx,303H
mov al,0eH;STB#=0
out dx,al
nop
nop
mov al,0FH;STB#=1
out dx,al

8254/8253奇数骑

8254每个奇数骑内都有个计数单元、初值寄存器、输出锁存器。GATE控制奇数骑工作。
工作过程:设定工作方式、计数初值、硬件启动,计数初值送入奇数骑、每个clk使得奇数骑-1、计数结束。
方式2/3连续计数,GATE高电平计数,上升沿重新计数。
方式0/4由软件启动(重写计数初值)。1/5硬件启动(GATE上升沿),0/4在高电平计数。
out初始值:方式0在写控制后变低,其余变高。
方式1输出N个CLK负脉冲,方式5输出1个CLK负脉冲(与2/4波形相同,N-1高,1低)。
方式3:若计数值为偶数,输出N2\frac N22N​个clk高电平和低电平。若计数值为奇数,输出N+12\frac{N+1}22N+1​个高电平和N−12\frac{N-1}22N−1​个低电平。
方式0:计数结束中断。1:可编程硬件触发单稳负脉冲发生器
方式2:速率发生器。3:方波速率发生器。4:软件触发选通信号发生。5:硬件选通发生。
读出控制字:只有8254有,8253没有。

D7D_7D7​ D6D_6D6​ D5D_5D5​ D4D_4D4​ D3D_3D3​ D2D_2D2​ D1D_1D1​ 0
读出控制字 1 1 0:锁存计数值 0:锁存状态 1:2# 1:1# 1:0# 0
状态字 OUT isNULL 读写格式 读写格式 工作方式 工作方式 工作方式 进制

输入时钟信号频率FclkF_{clk}Fclk​,周期TclkT_{clk}Tclk​,输出频率FoutF_{out}Fout​,周期ToutT_{out}Tout​
则Tout=TclkNT_{out}=T_{clk}NTout​=Tclk​N,N=FclkFoutN=\frac{F_{clk}}{F_{out}}N=Fout​Fclk​​,先写控制字,再写初值
某工厂计件系统,装一个零件产生一个脉冲接CLK0CLK_0CLK0​,装100个后扬声器发声,则奇数骑0方式0,奇数骑1在方式3。

mov al,10H
mov dx,PORT_CTRL
out dx,al
mov al,100
mov dx,PORT_0
out dx,al
mov al,76H
mov dx,PORT_CTRL
out dx,al
mov ax,2000
mov dx,PORT_1
out dx,al
mov al,ah;写高8位
out dx,al

数字信号与模拟信号

单极性电压输出:Vout=(−D/(28))∗VREFV_{out}=(-D/(2^8))*V_{REF}Vout​=(−D/(28))∗VREF​
双极性电压输出:Vout=D−2727∗VREFV_{out}=\frac{D-2^7}{2^7}*V_{REF}Vout​=27D−27​∗VREF​
正负范围-5~5
ILE:数据输入,锁存允许
CS‾\overline{CS}CS:片选
WR1‾\overline{WR_1}WR1​​:写数据
XFER‾\overline {X_{FER}}XFER​​数据传送控制
WR2‾\overline{WR_2}WR2​​:第二级写。当XFER‾=WR2‾=0\overline{X_{FER}}=\overline{WR_2}=0XFER​​=WR2​​=0,开始转换
LE1=LE2=1LE_1=LE_2=1LE1​=LE2​=1直通,否则缓冲。IoutI_{out}Iout​输出电压
双缓冲控制:

mov dx,portx
out dx,xdata
mov dx,porty
out dx,ydata
mov ax,portcon
out dx,al
call delay

读8路电压转换

lea di,buf
mov cx,8
mov dx,300
convert:out dx,al;启动转换push dxmov dx,310H
state:in al,dx;读EOCtest al,20H;D5(EOC)为1?jz state
pop dx
in al,dx;读取结果
mov [di],al
add dx,2;下一模拟通道
add di,2
loop convert

0832锯齿波
N=Vin−VREF−VREF+−VREF−∗28N=\frac{V_{in}-V^-_{REF}}{V^+_{REF}-V^-_{REF}}*2^8 N=VREF+​−VREF−​Vin​−VREF−​​∗28

mov dx,330H
mov al,00H
aga:out dx,alcall delayinc aljmp aga
delay procpush cxmov cx,10loop $pop cxret
delay endp

汇编语言与微机原理 期末半开卷复习整理(下)相关推荐

  1. 单片微型计算机概念及组成,中国民用航空飞行学院2014年微机原理与接口考研复习大纲...

    中国民用航空飞行学院硕士研究生入学考试 801<微机原理与接口>复习大纲 第一部分  考试说明 一. 考试性质 <微机原理与接口>是中国民用航空飞行学院硕士生入学考试科目之一. ...

  2. 2019计算机原理及应用期末自测题,微机原理期末自测题答案.ppt

    微机原理期末自测题答案.ppt 一.基本概念与术语 1.8086是( )位计算机.8086地址线有( )条,可直接寻址的空间最大为( ). 2.总线周期是指( ).基本总线周期有( )T状态.Tw状态 ...

  3. 微型计算机原理 考试试题,微机原理期末考试试卷(有答案)

    微机原理期末考试试卷,有详细解析 <微机原理>考试试卷 一.判断题(每题1分,共10分) 1.十六位微型机的含义是:这种机器能同时处理十六位二进制数.(√) 2.微机的字长愈长,计算精度愈 ...

  4. 微型计算机原理综合实验报告,微机原理综合实验报告[精心整理].doc

    微机原理综合实验报告[精心整理] 微机原理综合实验报告 主题:数字钟的设计与实现 成员:陈天朗(P 洪 力(P 时间:2014年春季学期 实验原理 利用8254产生计时时钟信号,通过设置恰当的时间常数 ...

  5. 汇编语言与微机原理(1)基础知识

    前言 (1)本人使用的是 王爽老师的汇编语言第四版和 学校发的微机原理教材配合学习. (2)推荐视频教程 通俗易懂的汇编语言(王爽老师的书): 贺老师C站账号网址: (3)文章配套资料: Github ...

  6. 微型计算机原理期末试题,微机原理期末考试试题及答案.doc

    第 PAGE 6 页 上海应用技术学院2008-2009学年第 一 学期 <微机原理及应用>期末试卷 A 课程代码: B203205A 学分: 3.5 考试时间: 100 分钟 课程序号: ...

  7. 西电计科微机原理期末复习笔记

    本人西电19计科,微原期末90+,这是复习期间整理的笔记,基本涵盖了课程全部重点,有需要的学弟学妹可以在复习的时候参考一下.

  8. 微机原理 - 期末考试复习考点

    ⭐考点:8088内部结构 ⭐考点:数据总线 微机硬件系统的组成:CPU,存储器,I/O接口,地址线,数据线,控制总线 ⭐考点:内存地址寻址       左移四位然后+偏移地址       实际物理地址 ...

  9. 微型计算机原理期末知识,微机原理期末复习解答题

    TEST AL, 80H :检测PC7是否为1即是否忙 JNZ WAIT 1 :为忙则等待 MOV AL,0AH OUT 00H,AL :输出换行符 MOV AL, 00H OUT 03H,AL MO ...

最新文章

  1. 利用WSS搭建学生作业平台
  2. C#在DataTable中使用LINQ
  3. 使用Oracle数据库开发中的一个技巧
  4. 数据库监控框架 oneproxy-monitor 开源了
  5. ZZULIOJ 1055:兔子繁殖问题
  6. POJ 1458 Common Subsequence DP LCS 最长公共子序列
  7. 2020 【第十一届蓝桥杯省赛】 C/C++ B组 (第二场)
  8. 查询工商单位注册信息 平台
  9. 小米手机鸿蒙开机动画,华为“鸿蒙”来了!开机动画美炸了,用PPT一分钟就搞定...
  10. 拔掉数据线黑阀失效,为只读模式
  11. (XWZ)的Python学习笔记Ⅷ--------numpy
  12. java mas,java 移动MAS的DB接口实现彩信发送
  13. MyBatis自带的缓存配置(Cache)
  14. Designing Network Design Spaces
  15. 字符串的练习 统计字符串中大写,小写,数字的个数 29
  16. 已安装visual studio 如何添加新模板和组件
  17. 网站安全与渗透测试工程师岗位区别
  18. THUSC 2017 游记
  19. Command-click是什么意思?
  20. EDA01--Linux简介与基本指令入门

热门文章

  1. 计算机插上u盘就无法点亮,好U盘插电脑没反应怎么办?其实很简单可解决
  2. 微信小程序,后台数据返回的数据带有回车符,对文本进行回车符处理
  3. 主播直播时如何选择合适的内容?如何打造主播人设?
  4. win10系统怎么做电影服务器,瞧瞧Win10是如何将电影推送到电视机上的
  5. 互联网音乐告别版权战,音乐社区或成新风口?
  6. 拖拽式生成CMS和在线商店:Microweber
  7. Office2016的安装进度在 90% 时挂起
  8. MVVM设计模式的大体布局框架
  9. 2015年中国最具竞争力机器人控制器企业10强
  10. NTFS文件结构实习笔记