《微机原理与接口技术》(第四版)周何琴课后习题答案.docx

上传人(卖家):最好的沉淀 文档编号:4498331 上传时间:2022-12-14 格式:DOCX 页数:50 大小:800.23KB
下载 相关 举报
《微机原理与接口技术》(第四版)周何琴课后习题答案.docx_第1页
第1页 / 共50页
《微机原理与接口技术》(第四版)周何琴课后习题答案.docx_第2页
第2页 / 共50页
《微机原理与接口技术》(第四版)周何琴课后习题答案.docx_第3页
第3页 / 共50页
《微机原理与接口技术》(第四版)周何琴课后习题答案.docx_第4页
第4页 / 共50页
《微机原理与接口技术》(第四版)周何琴课后习题答案.docx_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、第 1 章 绪论作业1. 将下列二进制数转换成十进制数。(1)11001010B=202(2)00111101B=61(3)01001101B=77(4)10100100B=1643. 将下列十进制数分别转换为二进制数和十六进制数。(2)76= 100 1100B =4CH(4)134= 1000 0110B =86H4. 求下列十进制数的 BCD 码(1)327=11 0010 0111(BCD 码)(2)1256=1 0010 0101 0110(BCD 码)6. 求出下列 10 进制数的原码、反码和补码(2)+85 (4)-85 解:85=0101 0101B原码:+85= 0101 0

2、101B-85= 1101 0101B反码:+85= 0101 0101B-85= 1010 1010B补码:+85= 0101 0101B-85= 1010 1011B10. 画出微型计算机的基本结构框图,说明各部分的主要功能是什么? 解:微处理器地址总线CPU存储器I/O接口I/O总线I/O设备数据总线控制总线微型计算机的基本结构框图如下:微处理器 CPU:控制微处理器与存储器或 I/O 设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。微处理器主要完成:(1) 指令控制:从存储器中取指令,指令译码;(2) 数据加工:简单的算术逻辑运算;(3) 操作控制:在微处理器和存储器或

3、者 I/O 之间传送数据;(4) 时间控制:程序流向控制。存储器:用来存放数据和指令。I/O 接口:主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等-可编辑修改-各种功能。I/O 设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。输出运算结果。总线:连接计算机系统中各功能部件的信息通道。第 2 章 8086CPU 作业2. 8086CPU 内部由哪两部分组成?它们的大致是如何工作的? 答:(1)8086CPU 由指令执行部件EU 和总线接口部件BIU 两部分组成。(2) BIU 先执行读存储器操作,从给定地址单元中取出指令,送到先进先出

4、的指令队列中等待执行。存储器的物理地址=CS16+IP,在地址加法器S 中形成。 EU 从指令队列中取走指令,经EU 控制器译码分析后,向各部件发控制命令,以完成执行指令的操作。BIU 与 EU 是并行工作方式。 当指令队列已满,EU 在执行指令,未向总线接口单元BIU 申请读/写内存或I/O 操作时,BIU 处于空闲状态。 指令执行过程中,若需对存储器或 I/O 端口存取数据,EU 就要求 BIU 去完成相应的总线周期。5. 两个带符号数 1011 0100B 和 1100 0111B 相加,运算后各标志位的值等于多少?哪些标志位是有意义的?如果把这两个数当成无符号数,相加后哪些标志位是有意

5、义的?解:(1) 两个带符号数:不考虑 CF 标志1011 0100+ 1100 01111 0111 1011运算后各标志位状态如下: CF=1,有进位,对于带符号数,无意义。PF=1, 结 果 有 偶 数 个 1 AF=0,无半进位,非BCD 码运算,无意义。ZF=0,结果非 0SF =0, 结 果 为 正 数OF=1,溢出(两个负数相加,结果变成了正数)(2) 两个无符号数:不考虑 SF 和 OF 标志1011 0100+ 1100 01111 0111 1011运算后各标志位状态如下: CF=1, 有 进 位 PF=1,结果有偶数个 1ZF=0,结果非 0AF、SF、 OF 无意义。2

6、0. 简要解释下列名词的意义。CPU:中央处理单元CPU (Control Processing Unit)也称微处理器,是微型计算机的核心部件,由运算器 ALU、控制器、寄存器组以及总线接口等部件组成。主要完成各种运算,负责对整机的控制。存储器:用于存储程序和数据的硬件设备。堆栈:堆栈是一种数据结构,是内部RAM 的一段区域。设置堆栈的目的是用于数据的暂存,中断、子程序调用时断点和现场的保护与恢复。IP:指令指针寄存器,用于控制CPU 的指令执行顺序(只存放偏移量),只能和代码段寄存器 CS 配合使用,可以确定当前所要取的指令的内存地址,且始终指向代码段中下一条将要读取到 CPU 指令队列的

7、那条指令。顺序执行程序时,CPU 每取一个指令字节,IP 自动加 1,指向下一个要读取的字节。SP:堆栈指针寄存器,用于指示堆栈的栈顶地址偏移量的寄存器,它决定了堆栈在内部RAM 中的物理位置。只能和 SS 段寄存器配合使用,且始终指向堆栈的栈顶,在堆栈指令中隐含的使用它来定位栈顶数据。BP:基址指针寄存器。用于存放偏移量,通常和SS 段寄存器配合使用,在间接寻址中用于定位堆栈段中的内存单元。段寄存器:由于CPU 内部的寄存器都是 16 位的,为了能够提供 20 位的物理地址,8086 系统中采用了存储器分段的方法。规定存储器的一个段为 64KB,由段寄存器来确定存储单元的段基址,由指令提供该

8、单元相对于相应段起始地址的 16 位偏移量。状态标志:表示前一步操作(如加、减等)执行以后,ALU 所处的状态,后续操作可以根据这些状态标志进行判断,实现转移。控制标志:可以通过指令人为设置,用以对某一种特定的功能起控制作用(如中断屏蔽等),反映了人们对微机系统工作方式的可控制性。物理地址:存储器的实际地址,它是指 CPU 和存储器进行数据交换时所使用的地址。物理地址是由段地址与偏移地址共同决定的,计算物理地址的表达式为:物理地址 = 段地址 16 + 偏移地址逻辑地址:是在程序中使用的地址,它由段地址和偏移地 址两部分组成。逻辑地址的表示形式为“段地址:偏移地址”。机器语言:直接用二进制编码

9、表述的指令系统语言,通常称为机器语言,机器语言指令是计算机惟一能直接识别和执行的指令。汇编语言:便于记忆和使用,通常使用汇编语言(符号指令或指令助记符)来描述计算机的指令系统。指令:让计算机完成某种操作的命令称为指令。指令系统:一台计算机所能识别、执行的指令的集合就是它的指令系统。总线:连接计算机系统中其他主要功能部件的桥梁,是计算机系统中信息输送的枢纽,只有通过总线, 计算机系统的各部件才能实现相互通信。内部总线:微处理器内部各个器件之间传送信息的通路。系统总线:微处理机机箱内的底板总线。可分为:ISA、EISA、VESA 局部总线、PCI 局部总线等。时钟周期:CPU 时钟频率的倒数称为时

10、钟周期,也称T 状态。总线周期:BIU 完成一次访问存储器或 I/O 端口操作所需要的时间称为总线周期。一个基本的总线周期是由 4 个(或 4 个以上)时钟周期组成的。指令周期:执行一条指令所需要的时间称为指令周期,不同指令的指令周期的长短是不同的。一个指令周期是由几个总线周期组成的。21. 要完成下列运算和控制,用什么标志判别?其值是什么?(1) 比较两数是否相等?(2) 两数运算后结果是正数还是负数?(3) 两数相加后是否溢出?(4) 奇偶校验判断。(5) 两数相减后比较大小。(6) 中断信号能否允许? 答:(1) 比较两数是否相等:两数相减后用零标志 ZF 判断,ZF=1,则相等。(2)

11、 两数运算后结果是正数还是负数:用符号标志 SF 判断, SF=1,则结果为负数。(3) 两数相加后是否溢出:用溢出标志 OF 判断,OF=1,则有溢出。(4) 奇偶校验判断:采用偶校验方式,判定是否要补“1”?用奇偶标志 PF 判断,若数据结果低8 位中含有偶数个“1”,则 PF=1;不用补“1”。(5) 两数相减后比较大小:ZF=1,两数相等。对于无符号数,CF=1,则被减数小于减数;CF=0,则被减数大于减数;ZF=1,则两数相等。对于带符号数,SFOF=1,则被减数小于减数;SFOF=0,则被减数大于减数。(6) 中断信号能否允许:用中断允许标志 IF 判断,IF=1,则能允许可屏蔽中

12、断。22. 说明 8086 系统中“最小模式”和“最大模式”两种工作方式的主要区别。最小模式(最小工作方式 ):单微处理器系统(系统中只有一个 8086 微处理器),所有的总线控制信号,都是直接由 8086CPU 产生的,适用于规模较小的微机应用系统。当把 8086 的 33 脚MN/MX 接+5V 时,8086 CPU 就处于最小工作方式。最大模式(最大工作方式 ):多微处理器系统(包含有两个或多个微处理器,一个主处理器 8086CPU,其他的处理器称为协处理器它们是协助主处理器工作的。 ),主要用在中等或大规模的 8086 系统中。当把 8086 的 33 脚MN/MX 接地时, 8086

13、 CPU 就处于最大模式。源目的(1)MOV AX, 2048H立即寻址寄存器寻址(2) MOV CL, 0FFH立即寻址寄存器寻址(3) MOV BX, SI寄存器间接寻址寄存器寻址(4) MOV 5BX, BL寄存器寻址寄存器相对寻址第 3 章 作 业1分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。(5) MOV BP+100H, AX寄存器寻址寄存器相对寻址(6) MOV BX+DI, $立即寻址基址变址寻址(7) MOV DX, ES:BX+SI基址变址寻址寄存器寻址(8) MOV VALBP+DI, DX寄存器寻址相对基址加变址寻址(9) IN AL, 05HI/O 端口

14、寻址(或直接寻址)寄存器寻址(10) MOV DS, AX寄存器寻址寄存器寻址2已知:DS=1000H, BX=0200H, SI=02H, 内存 10200H10205H 单元的内容分别为 10H, 2AH, 3CH, 46H, 59H,6BH。下列每条指令执行完后 AX 寄存器的内容各是什么?AX 内容(1)MOV AX, 0200H;(AX)=0200H(2) MOV AX, 200H;(AX)=2A10H(3) MOV AX, BX ;(AX)=0200H(4) MOV AX, 3BX ;(AX)=5946H(5) MOV AX, BX+SI;(AX)=463CH(6) MOV AX,

15、 2BX+SI ;(AX)=6B59H 6指出下列指令中哪些是错误的,错在什么地方(1) MOV DL, AX错误,源和目的操作数类型不匹配,DL 是 8 位寄存器,AX 是 16 位寄存器。(2) MOV 8650H, AX错误,立即数不能作为目的操作数。(3) MOV DS, 0200H错误,不能用立即数直接给段寄存器赋值。(4) MOV BX, 1200H错误,不能在两个存储单元之间直接传送数据(5) MOV IP, 0FFH错误,IP 不能作目的操作数或不能用立即数直接给IP 寄存器赋值。(6) MOV BX+SI+3, IP错误,IP 不能作源操作数。(7) MOV AX, BXBP

16、错误,基址变址寻址方式必须是一个基址寄存器与一个变址寄存器,不能两个同时为基址寄存器(BX、BP 均为基址寄存器)。(8)MOV AL, ES:BP正确。(9) MOV DL, SIDI错误,基址变址寻址方式必须是一个基址寄存器与一个变址寄存器,不能两个同时为变址寄存器(SI、DI 均为变址寄存器)。(10) MOV AX, OFFSET 0A20H错误,OFFSET 后必须是存储单元标号地址,不能是立即数。(11) MOV AL, OFFSET TABLE 错误,操作数类型不匹配,AL 为 8 位, TABLE 为 16 位。(12) XCHG AL, 50H错误,交换指令XCHG 的操作数

17、不能是立即数。(13) IN BL, 05H错误,IN 指令的目的操作数必须是累加器(14) OUT AL, 0FFEH错误,OUT 指令的源操作数必须是累加器,目的操作数为 8 位I/O 端口地址或用 DX 做桥梁的 16 位I/O 端口地址。10. 已知 AX=2508H,BX=0F36H,CX=0004H,DX=1864H,求下列每条指令执行后的结果是什么?标志位 CF 等于什么?(1) AND AH,CL(AH)=04HCF=0(2) OR BL,30H(BL)=36HCF=0(3) NOT AX(AX)=0DAF7HCF 不变(不影响 CF)(4) XOR CX,0FFF0H(CX)

18、=0FFF4HCF=0(5) TEST DH,0FH(DH)=18HCF=0(6)CMP CX,00H(CX)=0004HCF=0(7) SHR DX,CL(DX)=0186HCF=0(8) SAR AL,1(AL)=04HCF=0(9) SHL BH,CL(BH)=0F0HCF=0(10) SAL AX,1(AX)=4A10HCF=0(11)RCLBX,1CF=1,(BX)=1E6DH, CF=0,(BX)=1E6CH CF=0(12)RORDX,CL(DX)=4186HCF=011. 假设数据定义如下:DATA SEGMENTSTRING DB The Personal Computer

19、& TV DATA ENDS试用字符串操作指令编程完成以下功能:(1)把该字符串传送到附加段中偏移地址为 GET_CHAR 开始的内存单元中。解:程序段如下:LEASI,STRING;置源串偏移地址LEADI,GET_CHAR;置目的串偏移地址MOVCX,26;置串长度CLD;方向标志复位REPMOVSB;字符串传送12. 编程将 AX 寄存器中的内容以相反的次序传送到 DX 寄存器中,并要求 AX 中的内容不被破坏,然后统计 DX 寄存器中 1 的个数是多少。解:将 AX 的内容用 ROR 循环右移,16 次之后 AX 的内容不变(如果用算术/逻辑右移 SHL/SAL,则 AX 的内容破坏,

20、需要用堆栈 PUSHU AX/POP AX 保护),其最低位移入 CF 中,再使用 RCL 循环左移将 CF 中的值移入 DX 中。并且,如果CF 的值为 1,则将 BL 加 1。MOV CX, 16 XOR BL, BLLP1:ROR AX, 1JNC LP2 INC BLLP2:RCL DX,1LOOP LP1 HLT调试程序:STACK SEGMENT STACK DB 100 DUP(?)STACK ENDS DATASEGMENTBUF DW 12BUF1 DW 100 DUP (?) DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STAC

21、K START: PUSH DSMOV AX,DATA MOV DS,AX MOV AX,1234HMOV CX, 16 XOR BL, BLLP1:ROR AX, 1 JNC LP2 INC BLLP2:RCL DX,1 LOOP LP1 HLTCODEENDS END START15. 某班有七个同学的英语成绩低于 80 分,分数存在 ARRAY 数组中,试编程完成以下工作:给每人加 5 分,结果存到 NEW 数组中.解:STACK SEGMENT STACK DB 100 DUP(?)STACK ENDS DATASEGMENTARRAYDB 7 DUP(?) NEWDB 7 DUP(?

22、)DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV CX, 7MOV BX, 0LP1:MOV AL, ARRAYBXADD AL, 05H DAAMOV NEWBXI, AL INC BXLOOP LP1 HLTCODEENDS END START调试程序:STACK SEGMENT STACK DB 100 DUP(?)STACK ENDS DATASEGMENTARRAYDB65H,76H,78H,54H,90H,85H,68H NEWDB7 DUP(?)BUF1 DW 100 DUP (?) DATAENDSCOD

23、ESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DSMOV AX,DATA MOV DS,AX MOV CX, 7MOV BX, 0LP1:MOV AL, ARRAYBXADD AL, 05H DAAMOV NEWBXI, AL INC BXLOOP LP1 HLTCODEENDS END START某班有七个同学的英语成绩低于 80 分,分数存在 ARRAY 数组中,试编程完成以下工作:(1) 给每人加 5 分,结果存到 NEW 数组中(2) 把总分存到 SUM 单元中(3) 把平均分存到 AVERAGE 单元中解:STACK SEGM

24、ENT STACK DB 100 DUP(?)STACK ENDS DATASEGMENTARRAYDB 7 DUP(?) NEWDB 7 DUP(?)SUMDW 0AVGDB 0DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START:MOV CX, 7MOV SI, 0MOV SUM, 0MOV AH, 0LP1:MOV AL, ARRAYSIADD AL, 05H DAAMOV NEWSI, AL ADD AL ,SUMDAAMOV SUM,ALADC AH, 0 DAAMOV SUM+1, AH INC SILOOP LP1 MO

25、V AX, SUM MOV BL,07H DIV BLMOV AVG, AL HLTCODEENDS END START调试程序:STACK SEGMENT STACK DB 100 DUP(?)STACK ENDS DATASEGMENTARRAYDB65H,76H,78H,54H,90H,85H,68H NEWDB7 DUP(?)SUMDB 00H,00HAVGDB 0BUF1 DW 100 DUP (?) DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DSMOV AX,DATA MOV DS,AX MOV C

26、X, 7MOV SI, 0MOV SUM, 0MOV AH, 0LP1:MOV AL, ARRAYSIADD AL, 05H DAAMOV NEWSI, AL ADD AL , SUM DAAMOV SUM,AL ADC AH, 0MOV SUM+1, AH INC SILOOP LP1 MOV AL, SUMMOV AH,SUM+1 MOV BL,07H DIV BLMOV AVG, AL HLTCODEENDS END START13. 设 CS=1200H, IP=0100H, SS=5000H, SP=0400H, DS=2000H, SI=3000H, BX=0300H, (2030

27、0H)=4800H, (20302H)=00FFH, TABLE=0500H, PROG_N 标号的地址为 1200:0278 H,PROG_F 标号的地址为 3400:0ABCH。说明下列每条指令执行完后,程序分别转移到何处执行? JMP 指令(1) JMP PROG_N段内直接近转移,目的地址为 1200H:0278H(或 12278H) (2)JMP BX段内寄存器间接转移,目的地址为 1200H:0300H(或 12300H) (3)JMP BX物理地址DS10H+BX=2000H10H+0300H=20300H (20300H)=4800HIP段内存储器间接转移,目的地址为 1200

28、H:4800H(或 16800H) (4)JMP FAR PROG_F段间直接转移,目的地址为 3400H:0ABCH(或 34ABCH) (5)JMP DWORD PTRBX物理地址DS10H+BX=2000H10H+0300H=20300H (20300H)=4800HIP, (20302H)=00FFHCS段间存储器间接转移,目的地址为 00FFH:4800H(或 057F0H)JMP 改为CALL 后,目的地址与JMP 相同。(1)CALL PROG_N段内直接调用,3 字节指令,目的地址为 1200H:0278H(或 12278H),0103H 入栈,SP=03FEH (2)CALL

29、 BX段内寄存器间接调用,2 字节指令,目的地址为 1200H:0300H(或 12300H) ,0102H 入栈,SP=03FEH (3)CALL BX段内存储器间接调用,2 字节指令,目的地址为 1200H:4800H(或 16800H),0102H 入栈,SP=03FEH (4)CALL FAR PROG_F段间直接调用,5 字节指令,目的地址为 3400H:0ABCH(或 34ABCH),1200H 和 0105H 分别入栈,SP=03FCH (5)CALL DWORD PTRBX段间间接调用,2 字节指令,目的地址为 00FFH:4800H(或 057F0H),1200H 和 010

30、2H 分别入栈,SP=03FCH部分调试程序:STACK SEGMENT STACK DB 100 DUP(?)STACK ENDS DATASEGMENTBUF DW 12BUF1 DW 100 DUP (?) ORG 300HDB 00H,48H,0FFH,00HDATAENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DSMOV AX,DATA MOV DS,AX MOV BX,0300H CALL PROG_N CALL BXCALL BX ORG 0278PROG_N:RET ORG 0300HRET ORG 480

31、0HRET HLTCODEENDS END START14. 如在下列程序段的括号中分别填入以下指令:(1)LOOPNEXT(2) LOOPENEXT(3) LOOPNE NEXT试说明在这三种情况下,程序段执行完后,AX, BX, CX, DX 寄存器的内容分别是什么START: MOV AX, 01HMOV BX, 02H MOV DX, 03H MOV CX, 04HNEXT:INC AXADD BX, AX SHR DX, 1()解:LOOP 过程:AXBXCXDX初始值01H循环 1 次 02H04H02H04H03 H03H 01H循环 2 次 03H07H02H00H结果:循环

32、3 次 04H 循环 4 次 05H0BH10H01H00H00H00HAXBXCXDX(1)(2)05H02H10H04H00H03H00H01H执行一次,ZF=0,退出循环。(3)03H07H02H00H执行两次,ZF=1,退出循环。20. 设 8086CPU 的时钟频率为 5MHz,请编写延时 5ms 的子程序。解:微机的主频率为 5MHz则:时钟周期=主频率的倒数=1/(510-6)=0.2s 延时 5ms 需要的时钟周期数= 5ms/ 0.2s=25000延时子程序如下:DELAY5:MOV CX,N4DLY1:NOP3 NLOOPDLY117 (N-1)+ 5RET16应该有 25

33、000=4+ 3 N+ 17 (N-1)+ 5+16,才能实现要求的延时。则: N=1250=04E2H延时子程为:DELAY5:MOV CX,04E2H DLY1:NOPLOOPDLY1 RET第 4 章作业P1535. 阅读下列程序,说明每条指令执行后的结果是什么?X1DB65H, 78HX2DW06FFH, 5200HX3DD?GO: MOV AL, TYPE X1 MOV BL, TYPE X2 MOV CL, TYPE X3 MOV AH, TYPE GO MOV BH, SIZE X2 MOV CH, LENGTH X3解:(1)前三条语句的功能是设置数据于数据段中,从数据段偏移地

34、址 0000H 开始存放。65H变量偏移地址数据X10000H0001H78HX20002HFFH0003H06H0004H78H0005H00HX30006H随机数0007H随机数0008H随机数0009H随机数程序汇编后结果如下:六条程序执行结果如下:(AL)=01H;设置变量类型属性,字节数(BL)=02H;设置变量类型属性,字节数(CL)=04H;设置变量类型属性,字节数(AH)=0FFH;设置 GO 显示类型,近标号,为-1,补码表示(BH)=02H;设置数据类型,无 DUP 时,返回数据类型的字节数(CH)=01H;无 DUP 时,返回 1。程序执行后结果如下:调试程序如下: ST

35、ACK SEGMENT STACKDB 100 DUP(?)-可编辑修改-STACK ENDS DATA SEGMENTX1DB65H, 78HX2DW06FFH, 5200HX3DD?DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DSMOV AX,DATA MOV DS,AXGO:MOV AL, TYPE X1 MOV BL, TYPE X2 MOV CL, TYPE X3 MOV AH, TYPE GO MOV BH, SIZE X2 MOV CH, LENGTH X3 POP DSHLT CODE EN

36、DSEND START6. 画出示意图,说明下列变量在内存中如何让存放? A1 DB 12H, 34HA2 DB Right.A3 DW 5678HA4 DB 3 DUP(?)(1)设置数据于数据段中,从数据段偏移地址 0000H 开始存放。变量偏移地址数据A10000H12H0001H34HA20002H52H0003H69H0004H67H0005H68H0006H74H0007H2EHA30008H78H0009H56HA4000AH随机数000BH随机数000CH随机数调试程序如下:-可编辑修改-STACK SEGMENT STACKDB 100 DUP(?) STACK ENDSDA

37、TA SEGMENTA1DB12H, 34HA2DBRight.A3DW5678HA4DB3 DUP(?)DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DSMOV AX,DATA MOV DS,AX POP DSHLT CODE ENDSEND START程序汇编后结果如下:12. 编程实现,从键盘输入一个十进制数 09,查表求键入数字的七段代码(共阳极LED 显示器的段码),存入 DL 中,并在键入数字之前,显示提示信息“Please input a number(09): ”。解:STACK SEGMEN

38、T STACK DB 100 DUP(?)STACK ENDS DATA SEGMENTTABLE DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90HBUF DB Please input one number(09):,0DH,0AH,$ DATAENDSCODE SEGMENT-可编辑修改-ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: PUSH DSMOV AX,DATA MOV DS,AXMOV DX,OFFSET BUF MOV AH,09HINT 21H MOV AH,1 I

39、NT 21H AND AL,0FHMOV BX,OFFSET TABLE XLATMOV DL,AL POP DSHLTCODE ENDSEND START调试结果:数字 5 的共阳极 LED 七段码为 92H。15. 已知:在内存 BUF 开始的单元中,存在一串数据:58,75,36,42,89。编程找出其中的最小值存入MIN 单元中,并将这个数显示在屏幕上。解:STACK SEGMENT STACK DB 100 DUP(?)STACK ENDS DATA SEGMENTBUF DB 58H, 75H, 36H, 42H, 89H MIN DB 0-可编辑修改-DATA ENDS CODE

40、 SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK START: PUSH DSMOV AX, DATA MOV DS, AX MOV CX, 4MOV BX, OFFSET BUF MOV AL, BXST1: INC BXCMP AL, BX JBE NEXTMOV AL, BX NEXT:LOOP ST1MOV MIN, AL AND AL, 0F0H MOV CL,4ROR AL, CL ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21HMOV AL, MIN AND AL, 0FH ADD AL, 30H MOV DL

41、, AL MOV AH, 02H INT 21HPOP DSMOV AH, 4CH INT 21HHLT CODE ENDSEND START18. 某班有 20 个同学的微机原理成绩存放在 LIST 开始的单元中,要求编程先从高到低的次序排列好, 再求出总分和平均值,分别存放在 SUM 和 AVER 开始的单元中。解:STACK ENDS DATASEGMENTLIST DB 65H,76H,78H,54H,90H,85H,68H,66H,77H,88HDB 99H, 89H, 79H, 69H,75H,85H,63H,73H,83H,93H SUMDW 0-可编辑修改-AVER DB 0B

42、UFDB 100 DUP (?) DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH DSMOV AX,DATA MOV DS,AXMOV DI, OFFSET LIST MOV BX, 19LP0: MOV SI, DIMOV CX, BX LP1: MOV AL, SIINC SICMP AL, SI JNC LP2MOV DL, SI MOV SI-1, DL MOV SI, ALLP2: LOOP LP1DEC BXJNZ LP0 LP3: MOV CX, 20MOV BX, OFFSET LIST MOV SU

43、M, 0XOR AX, AX LP4: ADD AL, BXDAAADC AH, 0 INC BXLOOP LP4 MOV SUM, AX MOV BL, 20H DIV BLADD AL,0 DAAMOV AVER AL POP DSHLTCODEENDS END START20. 编程将存放在 AL 中的无符号二进制数,转化成十六进制数,再转换成 ASII 码并显示在屏幕上。解:程序如下:STACK SEGMENT STACK DB 100 DUP(?)STACK ENDS DATA SEGMENTDB 100 DUP(?) DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK START: PUSH DSMOV AX, DATA MOV DS, AX MOV DH, AL MOV CH, 02HST1:MOV CL, 4ROR DH, CL MOV AL, DH AND AL, 0FH ADD AL, 30H CMP AL, 39H JBE DISP ADD AL, 07HDISP: MOV

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 常用办公文档
版权提示 | 免责声明

1,本文(《微机原理与接口技术》(第四版)周何琴课后习题答案.docx)为本站会员(最好的沉淀)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|