




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
李伯成微机原理习题李伯成微机原理习题 第一章第一章 本章作业参考书目:本章作业参考书目: 薛钧义主编薛钧义主编 微型计算机原理与应用微型计算机原理与应用Intel 80X86 系列系列 机械工业出版社机械工业出版社 2002 年年 2 月第一版月第一版 陆一倩陆一倩 编编 微型计算机原理及其应用(十六位微型机)微型计算机原理及其应用(十六位微型机) 哈尔滨工业大学出版社哈尔滨工业大学出版社 1994 年年 8 月第四版月第四版 王永山等王永山等 编编 微型计算机原理与应用微型计算机原理与应用 西安电子科技大学出版社西安电子科技大学出版社 2000 年年 9 月月 1.1 将下列二进制数转换成十进制数:将下列二进制数转换成十进制数: X=10010110B= 1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21 =128D+0D+0D+16D+0D+0D+4D+2D=150D X=101101100B =1*28+0*27+1*26+1*25+0*24+1*23+1*22+ 0*21+0*20 =256D+0D+64D+32D+0D+16D+4D+0D=364D X=1101101B= 1*26+1*25+0*24+1*23+1*22+0*21 +1*20 =64D+32D+0D+8D+4D+0D+1D=109D 1.2 将下列二进制小数转换成十进制数:将下列二进制小数转换成十进制数: (1) X=0.00111B= 0*2-1+0*2-2+1*2-3+1*2-4+1*2-5= 0D+0D+0.125D+0.0625D+0.03125D=0.21875D (2) X=0.11011B= 1*2-1+1*2-2+0*2-3+1*2-4+1*2-5= 0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D (3) X=0.101101B= 1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6= 0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D 1.3 将下列十进制整数转换成二进制数:将下列十进制整数转换成二进制数: (1)X=254D=11111110B (2)X=1039D=10000001111B (3)X=141D=10001101B 1.4 将下列十进制小数转换成二进制数:将下列十进制小数转换成二进制数: (1) X=0.75D=0.11B (2) X=0.102 D=0.0001101B (3) X=0.6667D=0.101010101B 1.5 将下列十进制数转换成二进制数将下列十进制数转换成二进制数 (1) 100.25D= 0110 0100.01H (2) 680.75D= 0010 1010 1000.11B 1.6 将下列二进制数转换成十进制数将下列二进制数转换成十进制数 (1) X=1001101.1011B =77.6875D (2) X=111010.00101B= 58.15625D 1.7 将下列二进制数转换成八进制数将下列二进制数转换成八进制数 (1) X=101011101B=101011101B=535Q (2) X=1101111010010B=1101111010010B=15722Q (3) X=110B=6Q 1.8 将下列八进制数转换成二进制数:将下列八进制数转换成二进制数: (1) X=760Q=111110000B (2) X=32415Q=11010100001101B 1.9 将下列二进制数转换成十六进制数:将下列二进制数转换成十六进制数: X=101 0101 1110 1101B= 5 5 E D H X= 11001101011001B= 11 0011 0101 1001B= 3 3 5 9H X= 1000110001B= 10 0011 0001 B= 2 3 1 H 1.10 将下列十六进制数转换成二进制数:将下列十六进制数转换成二进制数: X= ABCH= 1010 1011 1100 B X=3A6F.FFH = 0011 1010 0110 1111.1111 1111B X= F1C3.4B =1111 0001 1100 0011 . 0100 1011B 1.11 将下列二进制数转换成将下列二进制数转换成 BCD 码:码: (1) X= 1011011.101B= 1011011.101B= 91.625d=1001 0001.0110BCD (2) X=1010110.001B= 1010110.001 =126.1 BCD 1.12 将下列十进制数转换成 将下列十进制数转换成 BCD 码:码: (1) X=1024D=0001 0000 0010 0100 BCD ( (2) X=632 = 0110 0011 0010 BCD (3) X= 103 = 0001 0000 0011 BCD 1.13 写出下列字符的写出下列字符的 ASCI I 码:码: A 41H 65D 0100 0001B 9 39H 47D * 2AH 42D = 3DH 45D ! 21H 33D 1.14 若加上偶校验码,下列字符的若加上偶校验码,下列字符的 ASCII 码是什么?码是什么? 字符字符 原码原码 加上偶校验码之后加上偶校验码之后 B 42H, 0100 0010B 42H,0100 0010B 4 34H, 0011 0100B B4H,1011 0100B 7 37H, 0011 0111B B7H,1011 0111B = 3DH,0011 1101B BDH,1011 1101B ! 21H,0010 0001B 21H,0010 0001B ? 3FH 0011 1111B 3FH,0011 1111B 1.15 加上奇校验,上面的结果如何?加上奇校验,上面的结果如何? 字符字符 原码原码 加上加上奇奇校验码校验码之后之后 B 42H, 0100 0010B C2H,1100 0010B 4 34H, 0011 0100B 34H,0011 0100B 7 37H, 0011 0111B 37H,0011 0111B = 3DH,0011 1101B 3DH,0011 1101B ! 21H,0010 0001B A1H,1010 0001B ? 3FH 0011 1111B BFH,1011 1111B 1.16 计算下式:计算下式: (1)B/2+ABH-11011001B*0.0101BCD=(42H/2+ABH-D9H)*0.21 BCD = = F3H*0.21 BCD =(-DH) *0.21 BCD= -2.73D (2) 3CH (84D)/(16Q)+8/8D= 60D-84D/14D+(56/8)=60D-13D= =47D 1.17 对下列十进制数,用八位二进制数写出其原码、反码和补码:对下列十进制数,用八位二进制数写出其原码、反码和补码: (正数的反码与原码相同,负数的反码除符号位之外其余各位按位取正数的反码与原码相同,负数的反码除符号位之外其余各位按位取 反。正数的补码与原码相同;负数的补码除符号位以外,其余各位按位取反之后反。正数的补码与原码相同;负数的补码除符号位以外,其余各位按位取反之后 再加一。再加一。) 数据数据 原码原码 反码反码 补码补码 +99 0110 0011 0110 0011 0110 0011 -99 1110 0011 1001 1100 1001 1101 +127 0111 1111 0111 1111 0111 1111 -127 1111 1111 1000 0000 1000 0001 +0 0000 0000 0000 0000 0000 0000 -0 1000 0000 1111 1111 0000 0000 1.18 8 位二位二进制数原码可表示数的范围是进制数原码可表示数的范围是 +127-128; 8 位二进制数补码可表示的数的范围是位二进制数补码可表示的数的范围是 +127-127; 8 位二进制数反码可表示的数的范围是:位二进制数反码可表示的数的范围是:+127-128; 1.19 16 位二进制数的原码、补码、反码可表示的数的范围是多少?位二进制数的原码、补码、反码可表示的数的范围是多少? +32767-32768、+32767-32768、+32767-32768; 1.20 至少写出至少写出 3 种用二进制编码状态表示十进制数字的编码方式。种用二进制编码状态表示十进制数字的编码方式。 8421 码、码、 5421 码码 2421 码码 余余 3 码码 十进制数十进制数 0000 0000 0000 0011 0 0001 0001 0001 0100 1 0010 0010 1000 0101 2 0011 0011 1001 0110 3 0100 0100 1010 0111 4 0101 1000 1011 1000 5 0110 1001 1100 1001 6 0111 1010 1101 1010 7 1000 1011 1110 1011 8 1001 1100 1111 1100 9 李伯成微机原理习题李伯成微机原理习题 第二章第二章 薛钧义主编薛钧义主编 微型计算机原理与应用微型计算机原理与应用Intel 80X86 系列系列 机械工业出版社机械工业出版社 2002 年年 2 月第一版月第一版 陆一倩陆一倩 编编 微型计算机原理及其应用 (十六位微型计算机原理及其应用 (十六位 微型机)微型机) 哈尔滨工业大学出版社哈尔滨工业大学出版社 1994 年年 8 月第四月第四 版版 王永山等王永山等 编编 微型计算机原理与应用微型计算机原理与应用 西安电子科技大学出版社西安电子科技大学出版社 2000 年年 9 月月 洪志全等洪志全等 编编 现代计算机接口技术现代计算机接口技术 电子工业出版社电子工业出版社 2002 年年 4 月月 仇仇玉章主编玉章主编 32 位微型计算机原理与接口技位微型计算机原理与接口技 术术 清华大学出版社清华大学出版社 2000 年年 9 月月 2.1 8086CPU2.1 8086CPU 的的 RESETRESET 引脚的功能是什么?引脚的功能是什么? 答:答:RESETRESET 引脚称为复位引脚,输入、三态、高电引脚称为复位引脚,输入、三态、高电 平有效;平有效;RESETRESET 引脚将使引脚将使 CPUCPU 立即结束当前操作,处立即结束当前操作,处 理器要求理器要求 RESETRESET 信号至少要保持信号至少要保持 4 4 个时钟周期的高电个时钟周期的高电 平,才能结束它正在进行的操作。平,才能结束它正在进行的操作。CPUCPU 复位以后,除复位以后,除 了代码段寄存器了代码段寄存器 CSCS 的值为的值为 FFFFHFFFFH 外, 其余所有寄存器外, 其余所有寄存器 的值均为零,指令队列为空。的值均为零,指令队列为空。 当当 RESETRESET 回到低电平时,回到低电平时,CPUCPU 开始执行开始执行热启动热启动程程 序序,由于此时,由于此时 CSCS 的值为的值为 FFFFHFFFFH,IPIP 的值为的值为 0000H0000H,所,所 以以 CPUCPU 复位以后执行的第一条指令的物理地址为复位以后执行的第一条指令的物理地址为 FFFF0HFFFF0H,该单元通常放置一条段间直接转移指令,该单元通常放置一条段间直接转移指令 JMP JMP SSSS:OOOO,SSSS:OOOO 即为系统程序的实际起始地址。即为系统程序的实际起始地址。 2.2 2.2 在在 8086 CPU 8086 CPU 工作在最小模式时,工作在最小模式时, (1 1) 当当 CPU CPU 访问存储器时,要利用哪些信号?访问存储器时,要利用哪些信号? 当当 CPUCPU 访问存储器时,要利用访问存储器时,要利用 AD0AD15AD0AD15、 WR*WR*、RD*RD*、IO/M*IO/M*以及以及 A16A19A16A19; (2 2) 当当 CPUCPU 访问外设接口时,要利用哪些信号?访问外设接口时,要利用哪些信号? 当当 CPUCPU 访 问 外 设 接 口 时 , 同 样 要 利 用访 问 外 设 接 口 时 , 同 样 要 利 用 AD0AD0-AD15AD15、WR*WR*、RD*RD*以及以及 IO/M*IO/M*,但不使用高端,但不使用高端 地址线地址线 A16A16-A19A19; (3 3)当)当 HOLDHOLD 有效并得到响应时,有效并得到响应时,CPUCPU 哪些引脚置哪些引脚置 高阻?高阻? 当当 HOLDHOLD 有效并得到响应时,有效并得到响应时, CPUCPU 除除 HOLDHOLD、 HOLDAHOLDA 引脚外其余所有的信号引脚均为高阻态。引脚外其余所有的信号引脚均为高阻态。 2.32.3 略略 2.42.4 说明说明 8086 CPU READY 8086 CPU READY 信号的功能。信号的功能。 见见 P23P23 2.5 8086 CPU 2.5 8086 CPU 的的 NMINMI 和和 INTRINTR 引脚的不同有几点?引脚的不同有几点? 两点:两点: (1 1) INTRINTR 是可以由用户用指令禁止的,是可以由用户用指令禁止的,(通(通 过中断允许标志过中断允许标志 IFIF 的开的开-STISTI 和关和关 CLICLI 进行);而进行);而 NMINMI 不不能由用户禁止;能由用户禁止; ( (2 2) ) INTRINTR 是可以区分优先级别的,是可以区分优先级别的,NMINMI 是最高级是最高级 的的,没有中断优先级的排队,没有中断优先级的排队。 2.6 2.6 说明说明 8086CPU8086CPU 内部标志寄存器各位的含义。内部标志寄存器各位的含义。 8086 CPU8086 CPU 的标志寄存器(的标志寄存器(PSWPSW 或或 FLAGFLAG)共有)共有 9 9 个个 标志位,分别是:标志位,分别是: CF CF (Carry FlagCarry Flag)- 进位或借位标志;进位或借位标志; PF PF (Parity FlagParity Flag)- 奇偶标志;奇偶标志; AF AF (auxiliary Flagauxiliary Flag)-半进位标志;半进位标志; ZF ZF (Zero FlagZero Flag) -结果为零标志;结果为零标志; SF (Sign Flag) SF (Sign Flag) - 符号标志;符号标志; OF OF (Overflow FlagOverflow Flag)-溢出标志;溢出标志; IF IF (Interrupt Enable FlagInterrupt Enable Flag)-中断允许标中断允许标 志;志; DF (Direction Flag) DF (Direction Flag) - 方向标志;方向标志; TF (Trap Flag) TF (Trap Flag) - 陷阱标志。陷阱标志。 2.7 2.7 说明说明 8086CPU8086CPU 内部内部 1414 个寄存器的作用。个寄存器的作用。 80868086 内部的寄存器可以分为内部的寄存器可以分为 3 3 类:类: 第一类:通用寄存器:第一类:通用寄存器: AXAX、BXBX、CXCX、DXDX、SISI、DIDI、SPSP、BPBP,共,共 8 8 个可以存个可以存 储数据或者地址的低储数据或者地址的低 1616 位;位;AXAX、BXBX、CXCX 和和 DXDX 可以分可以分 成成 8 8 个个 8 8 位的寄存器使用;位的寄存器使用;S SI I、DIDI 又称变址寄存器,又称变址寄存器, 用于存储变址地址;用于存储变址地址;SPSP 和和 BPBP 存放指针变量值。存放指针变量值。 第二类:段寄存器:第二类:段寄存器: CSCS、DSDS、SSSS、ESES,共,共 4 4 个寄存器,只能存放对应段个寄存器,只能存放对应段 的段地址;的段地址; 第三类为第三类为 IPIP 和和 FLAGFLAG,IPIP 在通常情况下不允许用户在通常情况下不允许用户 访问, 而访问, 而 FLAGFLAG 是用以向用户提供了解是用以向用户提供了解 ALUALU 工作状态或工作状态或 者控制者控制 CPUCPU 工作方式的标志寄存器。工作方式的标志寄存器。 2.8 2.8 试画出试画出8086CPU8086CPU工作在最小模式时的总线形成示工作在最小模式时的总线形成示 意图。意图。 ( (注:注:BHE*BHE*引脚为引脚为 3434 脚脚-即即 SS0SS0,参见,参见 P25P25 状态编码状态编码 表表) ) 四点说明:四点说明: A A、MN/MXMN/MX 端接端接+5V+5V,决定了,决定了 80868086 工作在最小模式。工作在最小模式。 B B、有一片、有一片 8234A8234A,作为,作为 时钟发生器时钟发生器。 C C、 有三片、 有三片 82828282 或或 74LS37374LS373, 用来作为, 用来作为 地址地址锁存器锁存器。 D D、 当系统中所连接的存储器和外设比较多时, 需要、 当系统中所连接的存储器和外设比较多时, 需要 增加系统数据总线的驱动能力,增加系统数据总线的驱动能力, 这时,要用两片这时,要用两片 8286/82878286/8287(74LS244(74LS244 或或 74LS245)74LS245)作为作为 总线收发器总线收发器。 2.9 8086/80882.9 8086/8088 为什么采用地址为什么采用地址/ /数据引线复用技数据引线复用技 术?术? 答:考虑到芯片成本,答:考虑到芯片成本,8086/80888086/8088 采用采用 4040 条引线的封条引线的封 装结构。装结构。4040 条引线引出条引线引出 8086/80888086/8088 的所有信号是不够的所有信号是不够 用的, 采用地址用的, 采用地址/ /数据线复用引线方法可以解决这一矛数据线复用引线方法可以解决这一矛 盾,从盾,从时序时序逻辑逻辑的的角度,地址与数据信号不会同时出角度,地址与数据信号不会同时出 现,二者可以分时复用同一组引线。现,二者可以分时复用同一组引线。 2.10 2.10 怎样确定怎样确定 80868086 的最大或最小工作模式?最大、的最大或最小工作模式?最大、 最小模式产生控制信号的方法有何不同最小模式产生控制信号的方法有何不同? 答: 引线答: 引线 MN/MX*的逻辑状态决定的逻辑状态决定 8086 的工作模式,的工作模式, MN/MX*引线接高电平,引线接高电平,8086 被设定为最小模式被设定为最小模式; MN/MX*引线接低电平,引线接低电平,8086 被设定为最大模式。最被设定为最大模式。最 小模式下小模式下所有所有的控制信号由的控制信号由 CPU 相关引线直接提供;相关引线直接提供; 最大模式下控制信号由最大模式下控制信号由 8288 专用芯片译码后提供,专用芯片译码后提供, 8288 的输入的输入由由 8086 的的 S2S0 三条状态信号引三条状态信号引线提线提 供。供。 李伯成微机原理习题李伯成微机原理习题 第三章第三章 本章作业参考书目:本章作业参考书目: 1.周明德:周明德: 微型计算机微型计算机 IBM-PC 系统原理与应用系统原理与应用 清华大学出版社清华大学出版社 1991 2.王永山等:王永山等: 微型计算机原理与应用微型计算机原理与应用 西安电子科大出版社西安电子科大出版社 1998 3.张怀莲:张怀莲: IBMPC 汇编语言程序设计汇编语言程序设计 电子工业出版社电子工业出版社 1990 注:本习题解中的程序仅为代码片段,可在注:本习题解中的程序仅为代码片段,可在 Emu8086 version 2.57 环境下仿真运行,如果在环境下仿真运行,如果在 MASM 下进行汇编,需添加段设置以及相应的下进行汇编,需添加段设置以及相应的伪指令。伪指令。 3.1 MOV AX,00H; 立即寻址立即寻址 SUB AX,AX; 寄存器寻址寄存器寻址 MOV AX,BX; 寄存器间接寻址寄存器间接寻址 MOV AX,TABLE; 直接寻址直接寻址 MOV AL,ARAY1SI; 寄存器相对寻址寄存器相对寻址 MOV AX,BX+6; 寄存器相对寻址寄存器相对寻址 3.2 若若 1KB 的数据存放在的数据存放在 TABLE 以下,试编写程序将该数据拌到以下,试编写程序将该数据拌到 NEXT 之下。之下。 程序片段如下:程序片段如下: ORG 100h MOV CX,03FFH;数据个数;数据个数 LEA SI,TABLE;源;源区首地址区首地址 LEA DI,NEXT; 目的区首地址目的区首地址 AGAIN: MOV AL,SI; MOV DI,AL; 搬移搬移 INC SI INC DI; 移动地址指针移动地址指针 DEC CX; 循环计数器递减循环计数器递减 JNZ AGAIN; 循环未结束转循环未结束转 HLT; 暂停暂停 TABLE DB 1024 dup (A); 源数据区源数据区 NEXT DB 1024 dup (0); 目的数据区目的数据区 3.3 编写编写 10 个字(个字(16 位二进制数)之和的程序位二进制数)之和的程序 ORG 100h LEA SI,ADD1; LEA DI,ADD2; LEA BX,SUM; MOV CL,CONT; MOV CH,0; 循环初始化循环初始化 CLC; 进位清零进位清零 MADD1: MOV AX,SI; 读加数读加数 1 ADC AX,DI ADD SI,2; 移动源区地址指针移动源区地址指针 ADD DI,2; 移动目的区地址指针移动目的区地址指针 MOV BX,AX; 回存计算结果回存计算结果 ADD BX,2; 移动移动和和存储区地址指针存储区地址指针 LOOP MADD1; 循环控制循环控制 HLT; 暂停暂停 ADD1 DB 0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加数;加数 1 ADD2 DB 56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H; 加数加数 2 SUM DB 10 DUP (0); 和存储单元和存储单元 CONT DB 5 ; 循环次数循环次数 3.4 某某 16 位二进制数,放在位二进制数,放在 DATA 连续的两个单元中,试编程求其平方根和余数,将其分连续的两个单元中,试编程求其平方根和余数,将其分 别存放在别存放在 ANS 和和 REMAIN 中。中。 ORG 100h MOV BL,2; 除数初值除数初值 AGAIN: MOV CX,NUM; 预计最大循环次数预计最大循环次数 MOV AL,BL; 0、1 的平方根除外的平方根除外 MUL BL; 得到得到 2 的平方的平方 CMP AX,CX; 大于原始数据么?大于原始数据么? JG EXIT; 若原始数据小于若原始数据小于 4 转转 EXIT MOV AX,CX; 读数读数 DIV BL; 试除试除 INC BL; 除数递增除数递增 JMP AGAIN; 继续除继续除 EXIT: DEC BL; 去除除数自加去除除数自加 MOV ANS,BL; 存商存商 MOV AL,BL; 恢复余数恢复余数 MUL BL; SUB CX,AX; MOV REMAIN,CL; HLT NUM DW 7; ANSDB ?; REMAIN DB ?; 3.5 在在 DATA1 之下顺序存放着以之下顺序存放着以 ASCII 码表示的千位数,将其转换成二进制数。码表示的千位数,将其转换成二进制数。 MOV CL,4; 移位次数移位次数 MOV CH,CL; 循环次数循环次数 MOV SI,OFFSET ASCBIN CLD XOR AX,AX XOR DX,DX ASCB1: LODSB AND AL,7FH CMP AL,0 ;不大于不大于0结束转换结束转换 JL ERR CMP AL,9 JG ASCB2 ;大于大于9转转 ASCB2 SUB AL,30H ; 数字形式二进制数减数字形式二进制数减 30H JMP ASCB3 ASCB2: CMP AL,A ;大于大于9又小于又小于A结束转换结束转换 JL ERR CMP AL,F JG ERR ;大于大于F为不合理数,结束转换为不合理数,结束转换 SUB AL,37H ;字符形式字符形式 ASCII 数减数减 37H ASCB3: OR DL,AL ROL DX,CL DEC CH JNZ ASCB1 ROL DX,CL MOV BIN,DX;存储转换结果;存储转换结果 ERR: NOP HLT ASCBIN DB 1,B,4,3 BIN DW ? 3.7 编写程序将编写程序将 MOLT 中的一个中的一个 8 位数乘以位数乘以 20,乘积放在,乘积放在 ANS 中(用中(用 3 种方式)。种方式)。 解:第一种方法:解:第一种方法:常规乘法运算常规乘法运算 ORG 100h MOV AL,MOLT MOV BL,20 MUL BL MOV ANS,AX HLT MOLT DB 2 ANSDW ? 第二种方法,将第二种方法,将 MOLT 连加连加 20 次次 ORG 100h MOV CX,20 MOV BX,MOLT XOR AX,AX CLC ADD1:ADC AX,BX LOOP ADD1 MOV ANS,AX HLT MOLT DW 5 ANSDW ? 第三种方法,将第三种方法,将20连加连加 MOLT 次次 ORG 100h MOV CX,MOLT MOV BX,20 XOR AX,AX CLC ADD1:ADC AX,BX LOOP ADD1 MOV ANS,AX HLT MOLT DW 5 ANSDW ? 3.8 在在 DATA 之下存放之下存放 100 个无符号的个无符号的 8 位数,找出其最大者并将其存放在位数,找出其最大者并将其存放在 KVFF 单单 元。元。 ORG 100h XOR DL,DL LEA DI,KVFF; NEXT0: LEA SI,BUFFER; MOV CL,99; 比较次数为比较次数为 N-1 次次 NEXT1: MOV AL,SI; INC SI; CMP DL,AL; JNC NEXT2; MOV DL,AL; DL 中始终存目前最大值中始终存目前最大值 NEXT2: DEC CL; JNZ NEXT1; MOV DI,DL; 最大值存储最大值存储 HLT BUFFER DB ;自行定义;自行定义 100 个数据个数据 KVFF DB ? 3.9 若将数据按大小顺序排序若将数据按大小顺序排序,试编写程序试编写程序 解解:此处采用此处采用 冒泡法冒泡法予以处理予以处理: ORG 100h LEA DI,BUFFER; 数据区数据区 MOV BL,99; 外循环次数外循环次数 NEXT0: MOV SI,DI; MOV CL,BL; 内循环次数内循环次数 NEXT3: MOV AL,SI; 读数读数 INC SI; 移动指针移动指针 CMP AL,SI; 比较比较 JNC NEXT5; 大于转大于转 NEXT5 MOV DL,SI; MOV SI-1,DL; MOV SI,AL; 不大于互换不大于互换 NEXT5: DEC CL; 内循环次数减一内循环次数减一 JNZ NEXT3; DEC BL; 外循环次数减一外循环次数减一 JNZ NEXT0 HLT BUFFER DB 自行定义自行定义 100 个字节型数据个字节型数据 3.10 在在 BVFF 单元中有一个单元中有一个 BCD 数数 A,试根据下列关系编写程序试根据下列关系编写程序,计算结果存在计算结果存在 DES 中中. A=60,Y=80. ORG 100h MOV AL,BVFF CMP AL,20 JL EX1 CMP AL,60 JL EX2 MOV AL,80 JMP STOP EX1: MOV BL,3 MUL BL JMP STOP EX2: SUB AL,20 STOP: MOV DES,AL HLT BVFF DB 8 DES DB ? 3.11 址为址为 DATAB 开始的开始的 80 个单元中个单元中,存放某班存放某班 80 个学生的某课程成绩个学生的某课程成绩,要求要求: 统计统计=90 分、分、8089 分、分、7079 分、分、6069 分、分、60 分以下的人数,结果存放在分以下的人数,结果存放在 BTRX 开始的开始的 5 个单元中个单元中 求平均成绩,结果存放在求平均成绩,结果存放在 LEVEL 中。中。 解:寄存器使用分配:解:寄存器使用分配:90 分以上在分以上在 DH,80 分以上在分以上在 DL,70 分以上在分以上在 BH,60 分以上在分以上在 BL,60 分以下在分以下在 AH,总分、均分都在,总分、均分都在DI。 ORG 100h XOR AH,AH XOR DX,DX ;统计结果清零统计结果清零 XOR BX,BX ;统计结果清零统计结果清零 LEA SI,DATA LEA DI,LEVEL MOV CL,CONT; 总人数送循环计数器总人数送循环计数器 CX goon: MOV AL,SI ;读原始数据读原始数据 ADC DI, AL;累加总分累加总分 ADC DI+1,0 ;计算进位计算进位 CMP AL,90 JL PP8 ; 不高于不高于 90 分者转分者转 PP8 INC DH ; 90-100 分的人数加一分的人数加一 JMP STOR PP8: CMP AL,80 JL PP7 ;不高于不高于 80 分转分转 PP7 INC DL ;80-89 分的人数加一分的人数加一 JMP STOR PP7: CMP AL,70 JL PP6 ;不高于不高于 70 分者转分者转 PP6 INC BH ;70-79 分的人数加一分的人数加一 JMP STOR PP6: CMP AL,60 JL PP5 ;不高于不高于 60 分者转分者转 PP5 INC BL ;60-69 分的人数加一分的人数加一 JMP STOR PP5: INC AH ;低于低于 60 分的人数加一分的人数加一 STOR: INC SI ;读下一个分数读下一个分数 LOOP GOON ;CX=CX-1,CX 不为零转不为零转 GOON,继续统计继续统计 LEA SI,BUFFER ;回存统计结果回存统计结果 MOV SI,DH INC SI MOV SI,DL INC SI MOV SI,BH INC SI MOV SI,BL INC SI MOV SI,AH MOV AX,WORD PTR DI ;计算平均成绩计算平均成绩 MOV CL,CONT DIV CL MOV LEVEL,AL ;回存平均成绩回存平均成绩 HLT CONT DB 10 DATA DB 30,65,99,80,75, 89,100,45,60,70 BUFFER DB ?,?,?,?,? LEVEL DB ? ,? 3.12 求求两个有符号数两个有符号数(DATA1,DATA2)差的绝对值差的绝对值,结果存入结果存入 DATA3. ORG 100h MOV AL,DATA1;读入被减数;读入被减数 SUB AL,DATA2;减去减数;减去减数 JC CHANGE; JMP STOR CHANGE: NEG AL STOR: MOV DATA3,AL HLT DATA1 DB 3 DATA2 DB 5 DATA3 DB ? 3.13 存从存从 40000H 到到 4BFFH 的个单元均写入的个单元均写入 55H,并再逐个读出并再逐个读出,验证是否一致验证是否一致,若一致若一致,置置 AL 为为 7EH,否则置否则置 AL 为为 81H. ORG 100h MOV AX,4000H; MOV DS,AX; MOV SI,0 START: MOV CX,0BFFFH BEGIN: MOV SI,55H MOV AL,SI INC SI CMP AL,55H JNZ ERR LOOP BEGIN MOV AL,7EH JMP STOP ERR: MOV AL,81H STOP: HLT 3.143.15 端口端口 03FBH 的的 BIT5 为状态标志为状态标志,当该位为当该位为 1 时时,表示外设忙表示外设忙,不能接收数据不能接收数据;当当 为为 0 时时,表示外设闲表示外设闲,可以接收数据可以接收数据;当当 CPU 向端口向端口 03F8H 写入一个字节的数据时写入一个字节的数据时,03FBH 的的 BIT5 置置 1,当它变为当它变为 0 状态时状态时,又可以写入下一个数据。 据此编写将起始地址为又可以写入下一个数据。 据此编写将起始地址为 SEDAT 的的 50 个数据输出到个数据输出到 03F8H 端口的程序。端口的程序。 WAIT: MOV DX,03FBH IN AL,DX TEST AL,0010 0000B;(;(20H) JZ SEND JMP WAIT SEND:MOV DX,3F8H MOV AL,SI; CMP AL,0AH;输出字串结束标志符;输出字串结束标志符 JZ STOP OUT DX,AL JMP WAIT STOP:HLT 3.16 口口 02E0H 的的 BIT2 和和 BIT5 同时为同时为 1,表示端口,表示端口 02E7H 有一个字节型数据准备好可以有一个字节型数据准备好可以 用以输入, 当用以输入, 当 CPU 从该端口读入数据后,从该端口读入数据后, 02E0 端口的端口的 BIT2 和和 BIT5 就不再同时为就不再同时为 1; 只有当只有当 02E7H 端口的数据再次准备好时,它们才会再次同时为端口的数据再次准备好时,它们才会再次同时为 1,据此编写从,据此编写从 02E7H 端口输入端口输入 32 个数据然后存入个数据然后存入 A1000H 单元开始的区域。单元开始的区域。 MOV AX,0A000H MOV DS,AX MOV SI,1000H; 设置存储区地设置存储区地址址 MOV CL,20H; 输入数据个数输入数据个数 BEGIN:MOV DX,0E20H IN AL,DX TEST AL,0010 0100B; 测试状态位测试状态位 BIT5、BIT2 JZ BEGIN; 不同时为不同时为 1 继续测试继续测试 MOV DX,02E7H IN AL,DX; 输入数据输入数据 MOV SI,AL; 存到指定区域存到指定区域 INC SI; 移动地址指针移动地址指针 LOOP BEGIN; 循环循环 HLT 3.17 在内存在内存 40000H 开始的开始的 16K 的单元中存放着的单元中存放着一组数据,将其顺序搬移到起始地址为一组数据,将其顺序搬移到起始地址为 A0000H 的区域。的区域。 解:利用字符串操作指令解:利用字符串操作指令 MOVSB,16K 即即 16*1024=3FFFH。 MOV AX,4000H MOV DS,AX MOV AX,A000H MOV ES,AX MOV SI,0 MOV DI,0 MOV CX,3FFFH CLD REPMOVSB HLT 3.18 上题的基础上,将两个区域的数据逐个进行比较,若有错将上题的基础上,将两个区域的数据逐个进行比较,若有错将 BL 置置 0,全对将,全对将 BL 置置 FFH。 MOV AX,4000H MOV DS,AX MOV AX,A000H MOV ES,AX MOV SI,0 MOV DI,0 MOV CX,03FFH CLD AAB: CMPSB JNZ STOP LOOP AAB MOV BL,0FFH JMP EX1 STOP: MOV BL,0; EX1: NOP HLT 3.19 统计由统计由 40000H 单元开始的单元开始的 16K 个单元中所存字符个单元中所存字符A的个数,统计结果存放在的个数,统计结果存放在 DX 寄寄 存器中。存器中。 MOV AX,4000H MOV DS,AX MOV SI,0; MOV CX,3FFFH; 数据个数数据个数 MOV DX,0;统计结果;统计结果寄存器寄存器清零清零 XOR DX,DX CLD AAB: LODSB CMP AL,A; 比较比较 JZ AAC;字符为;字符为A转计数转计数 LOOP AAB; 循环循环 JMP STOP; 处理完毕转结束处理完毕转结束 AAC: INC DX; 统计结果加统计结果加 1 DEC CX; 循环次数减循环次数减 1 JCXNZ AAB; CX0 继续继续 STOP: HLT 3.20 编编写对写对 AL 中的数据进行中的数据进行偶校验偶校验的一个过程,并将校验结果放入的一个过程,并将校验结果放入 AL 寄存器。寄存器。 PJY PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,DAT AND AL,AL JNP PJY1 MOV AL,00H; 表示为偶表示为偶 JMP EXIT PJY1: MOV AL,FFH; 表示为奇表示为奇 EXIT: POP DX POP CX POP BX POP AX RET PJY ENDP DAT DB ? 3.21 对对 80000H 开始的开始的 256 个单元的数据加上偶校验。个单元的数据加上偶校验。 ORG 100h MOV AX,8000H MOV DS,AX MOV SI,0 MOV CX,100H CLD PAR0: LODSB;(;(MOV AL,SI ;INC SI) TEST AL,AL JNP PAR1 LOOP PAR0 JMP STOP PAR1: OR AL,80H; MOV SI-1,AL DEC CX JNZ PAR0 STOP: HLT 4-1 某以8088为CPU的微型计算机内存RAM区为00000H 3FFFFH, 若采用6264、 62256、 2164 或 21256 各需要多片芯片? 解答: 8088 内存单元为 8 bit,所以,从 00000H 到 3FFFFH,共需要 214 个 byte,共 214*8bit,也就是共占用 16K byte 空间。由于各种芯片的数据总线根数不同,所以在连接时要 特别注意芯片的位数; 对于如下芯片: 6264 有 8 根数据线,13 根地址线,故其容量为 213*8bit,即 8Kbyte, 所以需要 2 片; 62256 有 8 根数据线,15 根地址线,故其容量为 215*8bit,即 32 Kbyte, 所以仅需要 1 片;尽管题目要求只需要 16K 的空间,但在使用 62256 时不得不使用 1 片。 2164 有 8 根数据线,12 根地址线,故其容量为 212*8bit,即 4Kbyte, 所以需要 4 片; 21256 有 1 根数据线,10 根地址线(实际为 20 根,分两组),但由于仅有一根数据线, 要构成八位的存储器至少需要 8 片,但总容量为 8*256Bit,远远超过题目的要求。 4.2 利用全地址译码将 6264 接在 8088 的系统总线上,其所占的地址范围为 BE000HBFFFFH,试画出连接图。 解答:6264 有 13 根地址线,连接时接到系统总线的低 13 位,即 A0A12, 其他 7 根地 址线 A19A13 的 地址译码输入应该为:1011 111 B,故而有如下的连接: 4.3 试利用 6264 芯片,在 8088 系统总线上实现 0000H03FFFH 的内存区域,试画 出电路连接图。 解答:0000H03FFFH 的地址范围为 214=16K, ,而 6264 芯片的容量为 8*8K, 所以 需要连接 2 片,其中,第一片的地址为 00000H01FFFH,第二片的地址为 02000H03FFFH,这里用 74LS138 的 Y0、Y1 作为两个芯片的片选。 4.4 叙述 EPROM 的编程过程,说明 EEPROM 的编程过程。 EPROM 编程通常采用两种模式:标准编程和快速编程: 标准编程是在 VCC、VPP、CE、OE、地址信号、数据信号有效并稳定后加入 50 毫 秒的 PGM 编程负脉冲,可以在写入一个数据后使 OE 变高而立即校验,也可以在所有 数据写入后逐一校验。 标准编程有两大缺陷:一是时间过长,比如 2764 全片编程约需 7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025河南新乡医学院辅导员招聘12人模拟试卷(含答案详解)
- 2025包头市昆都仑区发展和改革委员会竞争性比选工作人员的模拟试卷及一套答案详解
- 2025海南定安县建设工程质量安全监督站就业见习基地见习生招录5人模拟试卷及答案详解(名校卷)
- 2025安徽池州市贵池区招聘教师24人考前自测高频考点模拟试题及答案详解(有一套)
- 2025广西姆洛甲文化旅游投资有限公司招聘工作人员1人考前自测高频考点模拟试题及完整答案详解一套
- 2025广东越秀区华乐街道办事处招聘合同制工作人员1人模拟试卷及一套完整答案详解
- 2025河南郑州普海外国语学校招聘24人模拟试卷及一套答案详解
- 2025年甘肃省兰州市西固区中医医院招聘12人考前自测高频考点模拟试题及一套完整答案详解
- 2025广西桂林市灵川县发展和改革局公开招聘6人模拟试卷附答案详解(完整版)
- 2025年中国地质调查局廊坊自然资源综合调查中心公开招聘32人模拟试卷附答案详解(典型题)
- 《少年中国说(节选)》(第二课时) 教学课件
- 沥青路面施工方案61841
- 中国海洋大学《海洋生物资源与环境调查实习报告》
- 《中外美术史》课件1中外美术史.1(原始社会)
- 村民自治制度中存在的问题与对策
- 刺梨产品之养生有维系列简介共26页课件
- Q∕GDW 12152-2021 输变电工程建设施工安全风险管理规程
- 机械识图-公司培训PPT课件
- 公产房“承租权”能否继承
- 公司收购协议书范本
- 绿色建筑施工方案
评论
0/150
提交评论