微机原理习题课(本科)
微机原理习题课_1

提示:一个正数与负数相加,结果肯定不溢出
10
三、汇编指令 •汇编语言有三种基本语句:指令语句、伪指令语句、宏指令语句。 •指令语句=操作指令+操作数(可隐含) 汇编器如何找到操作数——寻址方式: (1)在数据存储器中,指令中如何提供操作数或操作数地址的方式。 (2)在程序存储器中,程序转移时需提供转移地址,这也称为寻址。
短标号,即位移量在-128~127的范围内。
注意:在编制大的循环程序时要注意跳转范围的限制问题,否则会出现以下的编译问题。
因此要求在编制程序时要做到短小精悍,简洁易读 提示:条件转移指令往往与逻辑指令,移位指令,CMP等指令相配合。
28
习题3.2
若WORD1及WORD2均为字变量,ADDITION为标号,请说明下列指令的错误之处:
12
例题 要点:理解各段与寄存器的概念,正确使用寻址方式。
例: (1)直接、间接、立即三种寻址方式的执行速度由快至慢依次为:
(2)下列指令中立操即作、数直在接代、码间段接中的是
A.MOV AL,25H
B.ADD AL,BH
C.CMP AX,[BP]
D.INC DS:[BP]
A
13
要点1:寄存器不能随便使用
若已知下一条指令到所跳转地址的相对位移量–128~+127,则可用标号SHORT
➢可以不定义SHORT NEXT:
… JMP NEXT
➢必须定义SHORT JMP SHORT NEXT …
NEXT: …
24
③段内间接转移:16位相对位移量 JMP reg或JMP mem MOV BX, 1000H JMP BX JMP WORD PTR [BX+20H] ④段间直接转移:32位相对位移量(CS:IP) JMP FAR PTR label, ⑤段间间接转移:32位相对位移量(CS:IP), JMP mem MOV SI, 0100H JMP DWORD PTR [SI]
微机原理课后习题答案

微机原理课后习题答案1.3 微型计算机采⽤总线结构有什么优点?解:采⽤总线结构,扩⼤了数据传送的灵活性、减少了连接。
⽽且总线可以标准化,易于兼容和⼯业化⽣产。
2.6 IA-32结构微处理器⽀持哪⼏种操作模式?解:IA-32结构⽀持3种操作模式:保护模式、实地址模式和系统管理模式。
操作模式确定哪些指令和结构特性是可以访问的。
2.14 8086微处理器的总线接⼝不接有哪些功能?请逐⼀说明。
解:总线接⼝单元(BIU)负责与存储器接⼝;执⾏单元(EU)执⾏各种操作。
BIU主要由段寄存器、指令指针、加法器(形成20位地址)和预取的指令流队列等组成。
2.15 8086微处理器的总线接⼝不见由哪⼏部分组成?解:8086微处理器中的总线接⼝单元(BIU)负责CPU与储存器之间的信息传送。
具体地说,BIU既负责从内存的指令部分取出指令,送⾄指令队列中排队(8086的指令队列有6个字节,⽽8088的指令队列只有4个字节);也负责传送执⾏指令时所需的操作数。
执⾏单元(EU)负责执⾏指令规定的操作。
2.16 段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?解:指令的物理地址=12000h+FF00H=21F00H2.17 8086微处理器的执⾏部件有什么功能?由哪⼏部分组成?解:8086微处理器的执⾏部件负责指令的执⾏。
它主要由算术逻辑单元、标志寄存器和通⽤寄存器等部分组成。
附:8086CPU从功能上分包括⼏部分,各有什么功能?3.3 写出下指令中内存操作数的所在地址。
(1)MOV AL,[BX+10](2)MOV [BP+10],AX(3)INC BYTE PTR[SI+5](4)MOV DL,ES:[BX+SI](5)MOV BX,[BP+DI+2]解:(1)数据段BX+10单元(2)堆栈段BP+10单元(3)数据段SI+5字节单元(4)附加段(ES段)BX+SI单元(5)堆栈段BP+DI+2单元3.4 判断下列指令书写是否正确。
微机原理课后习题参考答案

微机原理课后习题参考答案第1部分微型计算机基础知识1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?【解】微处理器:指计算机内部对数据进行处理并对处理过程进行控制的部件,伴随着大规模集成电路技术的迅速发展,芯片集成密度越来越高,CPU可以集成在一个半导体芯片上,这种具有中央处理器功能的大规模集成电路器件,被统称为“微处理器”。
微型计算机:简称“微型机”、“微机”,也称“微电脑”。
由大规模集成电路组成的、体积较小的电子计算机。
由微处理机(核心)、存储片、输入和输出片、系统总线等组成。
特点是体积小、灵活性大、价格便宜、使用方便。
微型计算机系统:简称“微机系统”。
由微型计算机、显示器、输入输出设备、电源及控制面板等组成的计算机系统。
配有操作系统、高级语言和多种工具性软件等。
1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?【解】CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备传递和暂存数据的功能。
1.3 微型计算机采用总线结构有什么优点?【解】①简化了系统结构,便于系统设计制造;②大大减少了连线数目,便于布线,减小体积,提高系统的可靠性;③便于接口设计,所有与总线连接的设备均采用类似的接口;④便于系统的扩充、更新与灵活配置,易于实现系统的模块化;⑤便于设备的软件设计,所有接口的软件就是对不同的口地址进行操作;⑥便于故障诊断和维修,同时也降低了成本。
总线的逻辑电路有些是三态的,即输出电平有三种状态:逻辑“0”,逻辑“1”和“高阻”态。
1.4计算机总线有哪些,分别是什么?【解】总线按其信号线上传输的信息性质可分为三组:①数据总线,一般情况下是双向总线;②地址总线,单向总线,是微处理器或其他主设备发出的地址信号线;③ 控制总线,微处理器与存储器或接口等之间1.5 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?【解】数据总线(DB)为双向结构,数据在CPU与存储器或I/O 接口之间的传送是双向的,(数据既可以读也可以写),其宽度通常与微处理器的字长相同。
微机原理课后习题答案

第二章1.8086CPU由哪两部分组成?它们的主要功能是什么?8086CPU由总线接口部件BIU和指令执行部件EU组成,BIU和EU的操作是并行的。
总线接口部件BIU的功能:地址形成、取指令、指令排队、读/写操作数和总线控制。
所有与外部的操作由其完成。
指令执行部件EU的功能:指令译码,执行指令。
2.8086CPU中有哪些寄存器?各有什么用途?8086CPU的寄存器有通用寄存器组、指针和变址寄存器、段寄存器、指令指针寄存器及标志位寄存器PSW。
4个16位通用寄存器,它们分别是AX,BX,CX,DX,用以存放16位数据或地址。
也可分为8个8位寄存器来使用,低8位是AL、BL、CL、DL,高8位是AH、BH、CH、DH,只能存放8位数据,不能存放地址。
指针和变址寄存器存放的内容是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。
段寄存器给出相应逻辑段的首地址,称为“段基址”。
段基址与段内偏移地址结合形成20位物理地址。
指令指针寄存器用来存放将要执行的下一条指令在现行代码中的偏移地址。
16位标志寄存器PSW用来存放运算结果的特征,常用作后续条件转移指令的转移控制条件。
5.要完成下述运算或控制,用什么标志位判断?其值是什么?⑴比较两数是否相等?将两数相减,当全零标志位ZF=1时,说明两数相等,当ZF=0时,两数不等。
⑵两数运算后结果是正数还是负数?用符号标志位SF来判断,SF=1,为负数;SF=0,为正数。
⑶两数相加后是否溢出?用溢出标志位来判断,OF=1,产生溢出;OF=0,没有溢出。
⑷采用偶校验方式。
判定是否要补“1”?用奇偶校验标志位判断,有偶数个“1”时,PF=1,不需要补“1”;有奇数个“1”时,PF=0,需要补“1”。
(5)两数相减后比较大小?●ZF=1时,说明两数是相等的;●ZF=0时:无符号数时,CF=0,被减数大;CF=1,被减数小。
带符号数时,SF=OF=0或SF=OF=1,被减数大;SF=1,OF=0或SF=0,OF1,被减数小。
第五章微机原理课后习题参考答案

习题五一. 思考题⒈半导体存储器主要分为哪几类?简述它们的用途和区别。
答:按照存取方式分,半导体存储器主要分为随机存取存储器RAM(包括静态RAM和动态RAM)和只读存储器ROM(包括掩膜只读存储器,可编程只读存储器,可擦除只读存储器和电可擦除只读存储器)。
RAM在程序执行过程中,能够通过指令随机地对其中每个存储单元进行读\写操作。
一般来说,RAM中存储的信息在断电后会丢失,是一种易失性存储器;但目前也有一些RAM 芯片,由于内部带有电池,断电后信息不会丢失,具有非易失性。
RAM的用途主要是用来存放原始数据,中间结果或程序,与CPU或外部设备交换信息。
而ROM在微机系统运行过程中,只能对其进行读操作,不能随机地进行写操作。
断电后ROM中的信息不会消失,具有非易失性。
ROM通常用来存放相对固定不变的程序、汉字字型库、字符及图形符号等。
根据制造工艺的不同,随机读写存储器RAM主要有双极型和MOS型两类。
双极型存储器具有存取速度快、集成度较低、功耗较大、成本较高等特点,适用于对速度要求较高的高速缓冲存储器;MOS型存储器具有集成度高、功耗低、价格便宜等特点,适用于内存储器。
⒉存储芯片结构由哪几部分组成?简述各部分的主要功能。
答:存储芯片通常由存储体、地址寄存器、地址译码器、数据寄存器、读\写驱动电路及控制电路等部分组成。
存储体是存储器芯片的核心,它由多个基本存储单元组成,每个基本存储单元可存储一位二进制信息,具有0和1两种状态。
每个存储单元有一个唯一的地址,供CPU访问。
地址寄存器用来存放CPU访问的存储单元地址,该地址经地址译码器译码后选中芯片内某个指定的存储单元。
通常在微机中,访问地址由地址锁存器提供,存储单元地址由地址锁存器输出后,经地址总线送到存储器芯片内直接进行译码。
地址译码器的作用就是用来接收CPU送来的地址信号并对它进行存储芯片内部的“译码”,选择与此地址相对应的存储单元,以便对该单元进行读\写操作。
微机原理课后答案 (4)

微机原理课后答案第一章:计算机系统简介1.1 问题1.计算机硬件系统由哪些部分组成?2.什么是计算机软件系统?3.计算机的主要功能有哪些?1.2 答案1.计算机硬件系统由以下几部分组成:–中央处理器(CPU)–内存(Memory)–外部设备(包括输入设备和输出设备)2.计算机软件系统是指计算机系统中的各种软件程序的集合,包括系统软件和应用软件。
系统软件用于管理和控制计算机硬件系统的运行,例如操作系统、编译器、数据库管理系统等。
应用软件用于实现各种具体的应用功能,例如文字处理软件、图形设计软件、游戏等。
3.计算机的主要功能包括:–进行数据的输入、输出和存储。
–进行数据的处理和运算。
–运行各种软件程序,实现各种功能。
第二章:计算机的基本组成部分2.1 问题1.什么是计算机的存储器?2.什么是计算机的输入设备?3.什么是计算机的输出设备?2.2 答案1.计算机的存储器是指计算机中用于存储数据和程序的设备,包括主存储器和辅助存储器。
主存储器又称为内存,是计算机中用于存放程序和数据的临时存储区域,其容量相对较小但访问速度很快。
辅助存储器是用于永久性存储数据和程序的设备,例如硬盘、固态硬盘或者光盘。
2.计算机的输入设备是用于将外部数据或命令输入到计算机中的设备,常见的输入设备包括键盘、鼠标、扫描仪、摄像头等。
3.计算机的输出设备是用于将计算机处理后的结果或数据输出到外部的设备,常见的输出设备包括显示器、打印机、音频设备等。
第三章:计算机的运算方法3.1 问题1.什么是计算机的算术运算?2.什么是计算机的逻辑运算?3.什么是计算机的数据转移?3.2 答案1.计算机的算术运算是指计算机对数字数据进行加、减、乘、除等运算的过程。
算术运算包括整数运算和浮点数运算。
整数运算是指对整数进行计算的过程,浮点数运算是指对带有小数部分的实数进行计算的过程。
2.计算机的逻辑运算是指计算机对逻辑数据进行与、或、非等运算的过程。
逻辑运算常用于判断和决策的场景,例如判断某个条件是否为真、执行不同的分支等。
微机原理课后练习答案

1思考与练习题一、选择题1. 计算机硬件中最核心的部件是()。
CA. 运算器B.主存储器 D. 输入/输出设备2. 微机的性能主要取决于()。
A(B ――计算机数据处理能力的一个重要指标)B. 主存储器C.硬盘D.显示器3. 计算机中带符号数的表示通常采用()。
CA.原码B.反码C.补码码4. 采用补码表示的8位二进制数真值范围是()。
C〜+127 27 〜+128 C.-128 〜+ 127 〜+1285. 大写字母“ B”的ASCII码是()。
B6. 某数在计算机中用压缩BCD码表示为,其真值为()。
C二、填空题1. 微处理器是指_CPU ;微型计算机以_ CPU为核心,配置_内存和I/O接口_构成;其特点是_(1)功能强(2)可靠性高(3)价格低(4)适应性强(5)体积小(6)维护方便_。
P8 P52. 主存容量是指_RAM和ROM、和_ ;它是衡量微型计算机_计算机数据处理_能力的一个重要指标;构成主存的器件通常采用_DRAM和PROM半导体器件_。
P5 P93. 系统总线是_CPU与其他部件之间传送数据、地址和控制信息__的公共通道;根据传送内容的不同可分成数据、地址、控制_3种总线。
P94. 计算机中的数据可分为数值型和非数值型两类,前者的作用是表示数值大小,进行算术运算等处理操作_;后者的作用是_表示字符编码,在计算机中描述某种特定的信息_。
P12 5. 机器数是指_数及其符号在机器中加以表示的数值化_;机器数的表示应考虑_机器数的范围、机器数的符号、机器数中小数点位置3个因素。
P15 P16码可以表示_128_种字符,其中起控制作用的称为_功能码_ ;供书写程序和描述命令使用的称为_信息码_。
P18 P19三、判断题1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。
()V2.计算机中数据的表示范围不受计算机字长的限制。
()X3.计算机地址总线的宽度决定了内存容量的大小。
微机原理练习题(含答案)

1.已知下列数组语句:0RG 0100HARY DW 3, $+4, 5, 6CNT EQU $-ARYDB 7,8,CNT,9问执行语句MOV AX, ARY +2和MOV BX,ARY +10后,AX=? BX=?答: AX=(ARY +2) = (0102H) =0106H; BX=( ARY +10) = (010AH) =0908H。
2.某程序设置的数据区如下所示。
DATA SEGMENTDB1 DB 12H, 34H, 0, 56HDW1 DW 78H, 90H, 0AB46H, 1234HADR1 DW DB1ADR2 DW DW1AAA DW $-DB1BUF DB 5 DUP(0)DATA ENDS画出该数据段内容在内存中的存放形式(要求用十六进制补码表示,按字节组织)。
3.分析下列程序:A1 DB 10 DUP(7)A2 DB 0,1,2,3,4,5,6,7,8,9……MOV CX, LENGTH AlMOV SI, SIZE A1 - TYPE AlLP: MOV AL, A2[SI]MOV Al[SI],ALSUB SI,TYPE A1DEC CXJN2 LPHLT问:(1)该程序的功能是什么?(2)该程序执行后,A1单元开始的10个字节内容是什么?答:(1)该程序的功能是将从A2单元开始存放的10个字节数据传送到从Al单元开始的10个字节单元中。
(2)程序执行后,Al单元开始的10个字节内容是0,1,2,3,4,5,6,7,8,9。
4. 试分析下列程序:BUF DB 0BHMOV AL, BUFCALL FAR PTR HECAHECA PROC FARCMP AL, 10JC LPADD AL, 7LP: ADD AL, 30HMOV DL, ALMOV SH, 2INT 21HRETHECA ENDP问:(1)该程序是什么结构的程序?功能是什么?(2)程序执行后,DL=?(3)屏幕上显示输出的字符是什么?答:(1)该程序为主程序调用子程序的结构,且为远调用子程序;功能是将BUF单元中的0~F一位十六进制数转换成对应的ASCII码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、设(DS)=2200H,(DI)=1600H,VAL的偏移量D=10H,(23610H)=2AH,执行指令MOV AX,VAL[DI]后,AX寄存器的内容是什么?其有效地址值是多少?AX寄存器的内容是2AH。
其有效地址值EA=(DI)+D=1610H 其物理地址值PS=DS×16+EA=22000H+1610H=23610H2、什么是堆栈?其特点和用途?堆栈是一个按照先进后出的原则存取数据的部件,位于堆栈段中,由堆栈区和堆栈指针组成。
堆栈是双字节操作,每次进、出栈的数据均为两个字节。
堆栈向低地址方向生成,数据进栈时SP 减2;数据出栈时SP加2。
堆栈的主要作用是便于保存断点和恢复现场。
当主程序调用子程序、中断响应转入中断服务程序时,能把断点地址以及有关的寄存器、标志位及时正确地保存下来,并保证逐次正确地返回。
3、设(SS)=2500H,(BP)=1040H,(SI)=0023H,SUM 的偏移地址值D=0050H,对于指令MOV AX,SUM[BP+SI],试指出该指令的源操作数字段的寻址方式,其有效地址和物理地址是多少?该指令的寻址方式是相对基址加变址。
其有效地址值EA=(BP)+(SI)+D=10B3H其物理地址值PA=SS×16+EA=260B3H4、什么是端口?端口通常有哪几类?计算机对存储器与I/O端口的编址通常采用哪两种方法?CPU与外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为端口。
端口通常有:数据端口、状态端口、控制端口。
对端口编址的两种方法是:计算机对存储器与I/O端口统一编址;计算机对存储器与I/O端口分别独立编址。
5、设(SS)=1500H,(BP)=0010H,(15010H)=0B7H,对于指令MOV AX,[BP],该指令的寻址方式是什么?其有效地址是多少?该指令执行完后AX寄存器的内容是多少?该指令的寻址方式是寄存器间接寻址方式。
该指令执行完后AX 寄存器的内容是0B7H。
其有效地址EA=(BP)=0010H其物理地址值PA=SS×16+(BP)=1500H×16+0010H=15010H6、(DS)=2000H,对于指令MOV AX,[0100H] 该指令的寻址方式是什么?其物理地址值是多少?该指令的寻址方式是直接寻址。
其物理地址值PA=DS×16+0100H=2000H×16+0100H=20100H7、如果要把偏移地址为2100H的存储单元的内容送到偏移地址为1002H的存储单元中,用指令:MOV [1002H],[2100H] 是否正确?如果不正确,如何修改?8、在8086系统中,假设堆栈指针SP=2104H,AX=100H,BX=200H,试问:(1)执行指令PUSH AX 后,SP=?(2)再执行指令PUSH BX 和POP AX,此时,SP=?;AX=?;BX=?9、指出下列程序段完成的操作。
LEA BX,BUF ‘确定初始偏移地址XOR AL,AL ‘al清零MOV CL,64H ‘将64H送入CLLOP1: MOV BYTE PTR [BX],ALINC BX ‘BX+1DEC CL ‘CL-1JNZ LOP1 ‘若CL不等于零,重复LOP1HLT该程序段完成的功能是从数据区以BUF为首地址开始,连续将100个字节单元清0。
10、分析下列程序段,回答指定的问题。
XOR AX,AXMOV CX,10MOV BX,2LOP1: ADD AX,BXINC BXINC BXJNZ LOP1MOV SUM,AXHLT(1) 该程序段完成的功能是什么?(2) 程序执行完后,SUM单元的内容是什么?该程序段完成的功能是: X=2+4+……+18+20=110,即将2~20之间的10个偶数求和,程序执行完后,SUM单元的内容为6EH=110。
11、试问下面的程序段完成什么样的操作功能?程序执行完后,AX、BX中的内容是什么?MOV AX,0MOV BX,1MOV CX,100NEXT: ADD AX,BXINC BXLOOP NEXTHLT该程序段完成的功能是:1+2+3+4+ (100)程序执行完后,AX中的内容为5050,BX中的内容为101 12、阅读并分析下列程序段,说明该程序完成什么操作?程序执行完后,AX中的内容是什么?MOV CX,5MOV AX,50NEXT: SUB AX,CXLOOP NEXTHLT该程序段完成的功能是:50-5-4-3-2-1。
程序执行完后,AX中的内容:50-5-4-3-2-1=35 13、分析下列程序段,指出该程序完成的功能是什么?程序执行完后,AX中的内容是什么?MOV AL,28HMOV AH,0SAL AX,1MOV BX,AXSAL AX,1SAL AX,1ADD AX,BXHLT该程序段的功能是完成将AL的内容乘以10的运算。
AL的初始值:28H=40运行结果:AX=40×10=40014、试编写程序完成下列函数的功能:当X≥1时,f(X)=+1;当-1<X<+1时f(X)=0;当X≤-1时,f(X)=-1。
DATA SEGMENTX DW a1Y DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX, XCMP AX,-1JLE FY ; 小于或等于-1CMP AX,1JL ZERO ; 小于1MOV BX,1 ; 大于或等于1JMP EXITZERO: MOV BX,0JMP EXITFY:MOV BX,-1EXIT:MOV Y,BXCODE ENDSEND START15、设字变量X为带符号的整数,试按下列要求编写程序:(1) 如果X的绝对值大于5,变量FX赋值为0;(2) 如果X的绝对值不大于5,变量FX赋值为1-X。
DATA SEGMENTX DW a1FX DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCMP X, 5JG R1CMP X, -5JL R1MOV BX,1SUB BX, XJMP EXITR1: MOV BX,0EXIT: MOV FY,BXCODE ENDSEND START16、在字变量单元A、B和C中存放三个数,若三个数都不为零,则求出三个数之和并存入内存单元D中;若有一个数为0,则将其它两个单元也清零,试编写该程序。
DATA SEGMENTA DW X1B DW X2C DW X3D DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX, AMOV BX, BMOV CX, COR AX,AXJNZ T1 ;AX不等于0,转移MOV B,AXMOV C,AXJMP STOPT1: O R BX,BXJNZ T2MOV A,BXMOV C,BXJMP STOPT2: OR CX,CXJNZ T3MOV A,CXMOV B,CXJMP STOPT3: ADD AX,BXADC AX,CXMOV D,AXSTOP: M OV AH,4CHINT 21HCODE ENDSEND START17、在内存中自TAB开始的16个单元连续存放着自然数0~15的平方值,任给一自然数M(0≤M≤15)放在XX单元中,查表求M的平方值,并把结果放在YY单元中,试编程完成该功能。
DATA SEGMENTTAB DB 0,1,4,9,16,25,36,49,64,81DB 100,121,144,169,196,225XX DB 12YY DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA BX,TABMOV AL,XXXLATMOV YY,ALCODE ENDSEND START18、在三个有符号的数中,寻找其中最大的数,试编写完成该功能的程序。
DATA SEGMENTDA1 DB 92HDA2 DB 67HDA3 DB 39HBUF DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,DA1CMP AL,DA2JGE AV1XCHG AL,DA2AV1: CMP AL,DA3JGE AV2XCHG AL,DA3AV2: MOV BUF,ALCODE ENDSEND START19、编写一个程序,从外设71H中取一个数M,判断其取值是否在10和20之间。
如果M<10,则送00H给外设73H;如果M≥20,则送0FFH给外设73H;如果10≤M<20,则送88H给外设73H。
IN AL,71HCLCCMP AL,10JC LP1CMP AL,20JC LP2MOV BL,0FFHLP3:OUT 73H,BLHLTLP1:MOV BL,00HJMP LP3LP2:MOV BL,88HJMP LP325.设在变量BUF开始存放了10个字节的有符号数,编写程序统计0的个数,将结果放在SUM单元中。
CODE SEGMENTASSUME CS:CODESTART:MOV AX,SEG BUFMOV DS,AXMOV CX,10MOV BX,OFFSET BUFMOV SUM,0L1:MOV AL,[BX]INC BXCMP AL,0JNZ LINC SUML:LOOP L1CODE ENDSEND START20、一个采用查询传送的输出接口,其数据端口地址为205H,状态端口地址为206H,外设状态位用D0传送,D0=1表示外设准备好。
编写程序段,将存储器中BUFFER开始的5000个字节数据输出。
程序段为:MOV SI, OFFSET BUFFERMOV CX,5000LOP2: MOV DX,206HIN AL,DXSHR AL,1JNC LOP2LOP1: MOV AL,[SI]MOV DX,205HOUT DX,ALINC SILOOP LOP2HLT21、8255A的A口和B口均工作在方式0,A口接有四个开关K3~K0,为输入端口,B口接有一个七段发光二极管,为输出端口,其电路连接如图所示,设8255A的端口地址为820H~823H,试编程实现七段发光二极管显示开关所拨通的数字。
(七段发光二极管为共阳极LED器件,即低电平点亮,高电平熄灭)8255A的A口工作在方式0,作为输入,8255A的B口工作在方式0,且作为输出,则8255A的方式控制字为CW=10010000B=90H8255A的A口接有四个开关K3~K,其组合可为0~FH,即可在LED上显示0~F各字符。