汇编语言与微机原理 期末半开卷复习整理(下)
输入输出
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=TclkN,N=FclkFoutN=\frac{F_{clk}}{F_{out}}N=FoutFclk,先写控制字,再写初值
某工厂计件系统,装一个零件产生一个脉冲接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
汇编语言与微机原理 期末半开卷复习整理(下)相关推荐
- 单片微型计算机概念及组成,中国民用航空飞行学院2014年微机原理与接口考研复习大纲...
中国民用航空飞行学院硕士研究生入学考试 801<微机原理与接口>复习大纲 第一部分 考试说明 一. 考试性质 <微机原理与接口>是中国民用航空飞行学院硕士生入学考试科目之一. ...
- 2019计算机原理及应用期末自测题,微机原理期末自测题答案.ppt
微机原理期末自测题答案.ppt 一.基本概念与术语 1.8086是( )位计算机.8086地址线有( )条,可直接寻址的空间最大为( ). 2.总线周期是指( ).基本总线周期有( )T状态.Tw状态 ...
- 微型计算机原理 考试试题,微机原理期末考试试卷(有答案)
微机原理期末考试试卷,有详细解析 <微机原理>考试试卷 一.判断题(每题1分,共10分) 1.十六位微型机的含义是:这种机器能同时处理十六位二进制数.(√) 2.微机的字长愈长,计算精度愈 ...
- 微型计算机原理综合实验报告,微机原理综合实验报告[精心整理].doc
微机原理综合实验报告[精心整理] 微机原理综合实验报告 主题:数字钟的设计与实现 成员:陈天朗(P 洪 力(P 时间:2014年春季学期 实验原理 利用8254产生计时时钟信号,通过设置恰当的时间常数 ...
- 汇编语言与微机原理(1)基础知识
前言 (1)本人使用的是 王爽老师的汇编语言第四版和 学校发的微机原理教材配合学习. (2)推荐视频教程 通俗易懂的汇编语言(王爽老师的书): 贺老师C站账号网址: (3)文章配套资料: Github ...
- 微型计算机原理期末试题,微机原理期末考试试题及答案.doc
第 PAGE 6 页 上海应用技术学院2008-2009学年第 一 学期 <微机原理及应用>期末试卷 A 课程代码: B203205A 学分: 3.5 考试时间: 100 分钟 课程序号: ...
- 西电计科微机原理期末复习笔记
本人西电19计科,微原期末90+,这是复习期间整理的笔记,基本涵盖了课程全部重点,有需要的学弟学妹可以在复习的时候参考一下.
- 微机原理 - 期末考试复习考点
⭐考点:8088内部结构 ⭐考点:数据总线 微机硬件系统的组成:CPU,存储器,I/O接口,地址线,数据线,控制总线 ⭐考点:内存地址寻址 左移四位然后+偏移地址 实际物理地址 ...
- 微型计算机原理期末知识,微机原理期末复习解答题
TEST AL, 80H :检测PC7是否为1即是否忙 JNZ WAIT 1 :为忙则等待 MOV AL,0AH OUT 00H,AL :输出换行符 MOV AL, 00H OUT 03H,AL MO ...
最新文章
- 利用WSS搭建学生作业平台
- C#在DataTable中使用LINQ
- 使用Oracle数据库开发中的一个技巧
- 数据库监控框架 oneproxy-monitor 开源了
- ZZULIOJ 1055:兔子繁殖问题
- POJ 1458 Common Subsequence DP LCS 最长公共子序列
- 2020 【第十一届蓝桥杯省赛】 C/C++ B组 (第二场)
- 查询工商单位注册信息 平台
- 小米手机鸿蒙开机动画,华为“鸿蒙”来了!开机动画美炸了,用PPT一分钟就搞定...
- 拔掉数据线黑阀失效,为只读模式
- (XWZ)的Python学习笔记Ⅷ--------numpy
- java mas,java 移动MAS的DB接口实现彩信发送
- MyBatis自带的缓存配置(Cache)
- Designing Network Design Spaces
- 字符串的练习 统计字符串中大写,小写,数字的个数 29
- 已安装visual studio 如何添加新模板和组件
- 网站安全与渗透测试工程师岗位区别
- THUSC 2017 游记
- Command-click是什么意思?
- EDA01--Linux简介与基本指令入门