微机基础原理第二版田辉课后材料.doc

收藏

编号:2601391    类型:共享资源    大小:749.26KB    格式:DOC    上传时间:2020-04-23
12
金币
关 键 词:
微机 基础 原理 第二 田辉 课后 材料
资源描述:
-/ 习  题 1-1.微型计算机包括哪几个主要组成部分,各部分的基本功能是什么? 答: 微型计算机由 CPU、存储器、输入/输出接口及系统总线组成。 CPU是微型计算机的核心部件,一般具有下列功能:进行算术和逻辑运算。暂存少量 数据。对指令译码并执行指令所规定的操作。与存储器和外设进行数据交换的能力。提供整 个系统所需要的定时和控制信号。响应其他部件发出的中断请求;总线是计算机系统各功能 模块间传递信息的公共通道,一般由总线控制器、总线发送器、总线接收器以及一组导线组 成;存储器是用来存储数据、程序的部件;I/O接口是微型计算机的重要组成部件,在CPU 和外设之间起适配作用。 1-2.CPU 执行指令的工作过程。 答: 取指令、执行指令。 指令执行的基本过程: (1)开始执行程序时,程序计数器中保存第一条指令的地址,指明当前将要执行的指令 存放在存储器的哪个单元。 (2)控制器:将程序计数器中的地址送至地址寄存器MAR,并发出读命令。存储器根 据此地址取出一条指令,经过数据总线进入指令寄存器IR。 (3)指令译码器译码,控制逻辑阵列发操作命令,执行指令操作码规定的操作。 (4)修改程序计数器的内容。 1-3.果微处理器的地址总线为 20 位,它的最大寻址空间为多少?20 1-4.处理器、微型计算机和微型计算机系统之间有什么关系? 答: 微处理器是微型计算机的核心部件。微处理器配上存储器、输入/输出接口及相应的外 设构成完整的微型计算机。以微型计算机为主体,配上系统软件和外部设备以后,就构成了 完整的微型计算机系统。 1-5.下面十进制数分别转换为二进制、八进制和十六进制数: 128,65535,1024 答: 128,二进制:10000000B,八进制:200O,十六进制:80H 65535,二进制:1111111111111111B,八进制:177777O,十六进制:FFFFH 1024, 二进制:10000000000B,八进制:2000O,十六进制:400H 1-6.下面二进制数分别转换为十进制及十六进制数: 1011.1010B,1111101.11 B 答: 1011.1010B,十进制:11.625,十六进制:B.AH 答: 2 =1048576=1MB 1111101.11B,十进制:125.75,十六进制:7D.CH 1-7.(5487)10=( 0101010010000111)BCD= 1010101101111 B 1-8.设字长为 8 位,请写出下列数的原码、反码、补码和移码: 15,-20,-27/32 答: [+15]原 =00001111, [+15]反 =00001111, [+15]补 =00001111, [+15]移 =10001111 [-20]原 =10010100, [-20]反 =11101011, [-20]补 =11101100, [-20]移 =01101100 [-27/32]原 =1.1101100, [-27/32]反 =1.0010011, [-27/32]补 =1.0010100, 第 2 章 微型计算机系统的微处理器 习 题 2-1.086/8088 CPU 的功能结构由哪两部分组成?它们的主要功能是什么? 答: 8086/8088 CPU 的功能结构由以下两部分组成:总线接口单元BIU(Bus Interface Unit), 执行部件EU (Execution Unit)。 总线接口单元BIU的主要功能是:负责与存储器、I/O 端口进行数据传送。具体讲:取 指令:总线接口部件从内存中取出指令后送到指令队列。预取指令。配合EU执行指令,存 取操作数和运算结果。 执行部件 EU 主要功能是:负责指令执行。 2-2.086 CPU 指令部件(队列)的作用是什么?地址加法器的作用是什么? 答: 8086/8088的指令队列分别为6/4个字节,存储预取的指令。 地址加法器用来产生20位物理地址。8086/8088可用20位地址寻址1M字节的内存空间, 而CPU内部的寄存器都是16 位,因此需要由一个附加的机构来计算出20位的物理地址,这 个机构就是20位的地址加法器。 2-3.据 8086 CPU 的结构,简述程序的执行过程。 答: 设程序的指令代码已存放在存贮器中。为执行程序,CPU按照时钟节拍,产生一系列控 制信号,有规则地重复进行以下过程。 (1)BIU从存贮器中取出一条指令存入指令队列。 (2)EU从指令队列取指令并执行指令。BIU利用总线空闲时间,从内存取第二条指令 或取第三条指令存入指令队列。 (3)EU执行下一条指令。如果前面一条指令有写存贮器的要求,则通知BIU把前条指 令结果写到存贮器中,然后再取指令存入指令队列。 (4)如指令执行要求读取操作数,由BIU完成。 (5)EU执行再下一条指令,返回(1)处继续执行上述操作过程。所以,程序的执行过 程就是CPU取指令、分析指令、执行指令,再取指令这样一个循环重复过程。 在指令执行过程中,利用 EU 分析指令操作码和执行指令时不占用总线操作时间的特 点,BIU 自动地通过总线读取存贮器中的指令码存入 BIU 指令队列,从而使 BIU 与 EU 并 行工作,提高 CPU 执行指令的速度。 2-4.什么是总线周期?8086/8088 的基本总线周期由几个时钟周期组成?若 CPU 的主 时钟频率为 10 MHz,则一个时钟周期为多少?一个基本总线周期为多少? 答: 总线周期:BIU通过系统总线对存储器或I/O端口进行一次读/写操作的过程称为一个 总线周期。 8086/8088CPU的一个基本总线周期由4个时钟周期(T1~T4)组成,也称4个T状态。 -7 若 CPU 的主时钟频率为 10MHz,则一个时钟周期为10 s,一个基本总线周期为 4 10-7 s。 2-5.复位信号 RESET 到来后,8086/8088 CPU 的内部状态有何特征?系统从何处开 始执行指令? 答: 8086/8088 系统中,复位信号 RESET 到来后,处理器内部的各寄存器和标志寄存器 的内容自动设置为: CS FFFFH DS 0000H SS 0000H ES 0000H IP 0000H 指令队列空 FR 0000H (禁止中断) 因 CS=FFFFH,IP=0000,所以 8086/8088 将从地址 FFFF0H 开始执行指令。 2-6.在总线周期的 T1~T4 状态,CPU 分别执行什么操作?在 CPU 的读/写总线周期 中,数据在哪个状态出现在数据总线上? 答: CPU 在每个时钟周期内完成若干个基本操作,具体是: T1 状态:CPU 向多路复用总线上发送地址信息指出要寻址的存储单元或外设端口地址。 T2 状态:CPU 从总线上撤消地址,使总线的低 16 位置为高阻抗状态,为传输数据作 准备。总线的高 4 位输出本总线周期状态信息。这些状态信息用来表示中断允许状态、当前 正在使用的段寄存器等。 T3 状态:CPU 在总线的高 4 位继续输出总线周期状态信号。在总线的低 16 位出现由 CPU 写出的数据,或者从存储器或 I/O 端口读入的数据。 T4 状态:总线周期结束。 在 CPU 的读/写总线周期中,数据在 T3 状态出现在数据总线上。 2-7.8086/8088 读/写总线周期,微处理器是在( B )时刻采样READY信号,以便决 定是否插入Tw 。 A.T2 B.T3 C.T3 下降沿 D. T2 上升沿 2-8.8086/8088 系统中为什么要有地址锁存器?需要锁存哪些信息? 答: 因 8086/8088 系统中地址线、数据线是复用的,所以要有地址锁存器锁存 T1 状态输出 的地址。8086 系统锁存 20 位地址及 BHE 信号, 8088 系统锁存 20 位地址。 2-9.8086/8088 的最大模式系统配置与最小模式系统配置在结构上有何区别?总线控 制器 8288 的作用是什么? 答: 最大模式系统配置在结构上与最小模式系统的主要区别是增加了一个总线控制器 8288 和一个总线仲裁器 8289。 总线控制器 8288 的作用是:对来自 8086/8088 CPU 的总线状态信号 S2 、 S1 、 S0 译 码,与输入控制信号 AEN 、CEN 和 IOB 相互配合,产生总线命令信号和总线控制信号。 2-10.关于8086 最大工作模式的特点描述正确的是( D )。 A.不需要总线控制器8288 B.适用于单一处理机系统 C.由编程进行模式设定 D. M/IO 引脚不可以直接引用 2-11.8086/8088有最小和最大模式两种工作模式,当( B )时为最小模式。 A.MN/ MX=O B.MN/ MX=l B.INTR=l D.HOLD="1 2-12.8086 最小工作模式和最大工作模式的主要差别是( D ). A.地址总线的位数不同 C.数据总线位数不同 B.I/O 端口数不同 D.单处理器与多处理器的不同 2-13.PC 机中地址总线的作用是( C )。 A.用于选择存储器单元 B.用于选择进行信息传输的设备 C.用于给存储器单元和I/O 设备接口电路的选择地址 D.以上都不正确 2-14.设当前 SS=C000H,SP=2000H,AX=2355H,BX=2122H,CX=8788H,则 当前栈顶的物理地址是多少?若连续执行 PUSH AX,PUSH BX,POP CX 3 条指令后,堆 栈内容发生什么变化?AX、BX、CX 中的内容是什么? 2-15.8086/8088的控制标志位有( C )个。 A.l B.2 C.3 D.4 2-16.编程人员不能直接读写的寄存器是( C )。 A.DI B.CX C.IP D.SP 2-17.设(AH)=03H,(AL)=82H,试指出将 AL 和 AH 中的内容相加和相减后,标 志位 CF、AF、OF、SF、IF 和 PF 的状态。 答: (AH)=00000011H +(AL)=10000010H 10000101 CF=0、AF=0、OF=0、SF=1、IF 不确定和 PF=0 (AH)=00000011H _ (AL)=10000010H 10000001 CF=1、AF=0、OF=0、SF=1、IF 不确定和 PF=1 2-18.8086 CPU 中的标志寄存器 FR 中有哪些状态标志和控制标志?这些标志位各有什 么含义? 见教材。 2-19. BHE 信号的作用是什么?简述 8086 系统中,访问存储器在读写一个字和字节的 过程中, BHE 和 A0 的状态。 答: 高 8 位数据总线允许/状态复用信号。总线周期的 T1 状态,8086 在 BHE /S7 输出低电平, 表示高 8 位数据总线 AD15~AD8 上的数据有效。 8086 系统中,BHE 和 AD0 结合起来,指出当前传送的数据在总线上将以何种格式出现。 (见教材表 2-4-1) 8088 系统中,由于数据总线只有 8 位,不存在高 8 位与低 8 位的问题。所以,该引脚 (第 34 号)被定义为双功能引脚。在最大模式时,该引脚恒为高电平;在最小模式中,则 定义为 SS0 。 2-20.8086 向偶地址存储单元 0 送一个字节数据时, 须执行一个总线周期, 在第一个 T 状态中, ALE 为 1 , A0 为 0 ,WR 为 1 。 2-21.8086 系统中,为什么要对存储器进行分段管理?其分段管理是如何实现的? 答: 8086/ 8088 地址总线是 20 位的,CPU 中的寄存器是 16 位的,20 位地址无法用 16 位寄 存器表示,所以必须分段。 通常有代码段、数据段、堆栈段、辅助段。段内地址 16 位,每个段的大小最大可达 64KB; 实际使用时可以根据需要来确定段大小。 2-22.已知某存储单元的段地址为 4500H,偏移地址为 4500H,该单元的物理地址是多 少? 答:49500H 2-23.某指令对应当前段寄存器CS=FFFFH,指令指针寄存器IP=FF00H,此时,该指令 的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?试举例说明 答: 该指令的物理地址为:CS+I P FFFF0H+ FF00H=1 0FEF0H 这一物理地址的CS值和IP值是唯一的吗:不唯一 2-24.因为8086CPU 的字数据既可以存放在内存的偶地址单元,也可以安排在奇地址单 元,所以其堆栈指针SP( A )。 A.最好是指向偶地址单元 B.可以指向任何地址单元 C.只能指向偶地址单元 D.只能指向奇地址单元 第 3 章 8086/8088 的指令系统 习 题 3-1.试举例说明 8086/8088 微处理器的各种寻址方式。 (略) 3-2.假定 DS=1000H,SS=9000H,SI=100H,BX=20H,BP=300H,请指出下列指令的 源操作数是什么寻址方式?若源操作数位于存储器中,其物理地址是多少? (1)MOV CX,[1000H] (3)MOV AX,[BX] (5)MOV AL,[BP+5] (2)MOV AX,100H (4)MOV BL,CL (6)MOV AL,[BP+SI+2] 答: (1)中源操作数为直接寻址,其物理地址=DS*16+1000H=11000H; (2)中源操作数为立即寻址; (3)中源操作数为寄存器间接寻址,其物理地址=DS*16+(BX)=10020H; (4)中源操作数为寄存器寻址; (5)中源操作数为变址寻址,其物理地址=SS*16+(BP)+ 5=90305H; (6)中源操作数为基址加变址寻址,物理地址=SS*16+(BP)+(SI)+ 2=90402H。 3-3.在 8088/8086 微机的内存物理地址 34780H 处,存放有字节数据 58H,已知 DS=3000H,试写指令序列将该字节数据送入 AL 寄存器。要求分别采用三种不同的寻址方 式。 答: (1) 直接寻址: MOV AL, [4780H] (2) 寄存器间接寻址: MOV BX,4780H MOV AL, [BX] (3) 变址寻址: MOV SI, 4782H MOV AL, [SI-2] 3-4.判断下述 8086/8088 指令的写法是否正确: (1)MOV [AX], BH (3)MOV [SP], AX (5)OUT 10H, CL (7)PUSH AL (9)MOV ES:[SI], DI 答: (1) MOV [AX], BH (2) MOV [BP], AX (3) MOV [SP], AX  (X) (√) (X) (2)MOV [BP], AX (4)MOV [DI], [SI] (6)INC WORD PTR [SI] (8)CMP 36H, AL (10)MOV BYTE PTR [BX], 800 (4) MOV [DI], [SI] (5) OUT 10H, CL  (X) (X) (6) INC WORD PTR [SI] (√) (7) PUSH AL (8) CMP 36H, AL (9) MOV ES:[SI], DI  (X) (X)  (√) (10) MOV BYTE PTR [BX], 800 (X) 3-5.设有关寄存器及存储单元的内容如下: DS=2000H , BX=0100H , AX=1200H , SI=0002H , [20102H]=33H , [20103]=44H , [21200]=9BH,[21201H]=99H,[21202H]=0AAH,[21203H]=88H。 问:下列各条指令单独执行后相关寄存器或存储单元的内容为多少? (1)MOV (3)MOV (5)MOV AX,1800H BX,[1200H] [BX+SI],AL (2)MOV (4)MOV (6)MOV AX,BX DX,[BX+1100H] AX,[BX+SI+1100H] 答: (1) (2) (3) (4) (5) (6) AX=1800H AX=BX=0100H BX=999BH DX=999BH [20102H] = AL =00H AX=88AAH 3-6.已知 SS=0FF00H,SP=0000H,试编写程序片段将两个 16 位数 1122H 和 3344H 先 后压入堆栈,并画出堆栈区和 SP 内容变化的过程示意图(标出存储单元的地址)。 答: MOV AX, 1122H PUSH AX 0FF00:0FFFEH 0FF00:0FFFFH  22H 11H  SP MOV AX, 3344H PUSH AX 0FF00:0FFFCH 0FF00:0FFFDH 0FF00:0FFFEH 0FF00:0FFFFH  44H 33H 22H 11H  SP 3-7.设在数据段偏移地址为 2000H 单元开始的地方连续存放了 0 ~ 15 的平方值。试写 出包含有 XLAT 指令的指令序列,用来查找 0~15 范围内的某个数 N 的平方值(设 N 的值存 放在 CL 寄存器中)。 答: MOV BX, 2000H MOV AL, CL XLAT 3-8.试用简单的几条指令完成对 AL 寄存器中的无符号数乘以 12 的操作。要求只能用 移位、加法及 MOV 指令。 答: MOV AH, 0 MOV CL, 2 SHL AX, CL MOV BX, AX SHL AX, 1 ADD AX, BX ;AL 左移两位,相当于乘 4 ;保存 ;AL 再左移一位,相当于原数乘 8 ;相当于原数乘 12 3-9.已知程序段如下: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX 问:执行完每条指令后,AX=? CF=? SF=? ZF=?(设在执行第一条指令前 CF=SF=ZF=0)。 答: AX=8D00H CF=0,SF 及 ZF 不确定。 3-10.执行如下三条指令后: MOV AH,0 MOV AL,7 ADD AL,5 问:(1) 若再执行一条非组合 BCD 码加法调整指令 AAA 后,AX 的内容为多少? (2) 若 题中的三条指令后紧跟的是一条组合 BCD 码加法调整指令 DAA,则执行完 DAA 后 AX 的 内容为多少? 答: (1) AX=0102H (2) AX=0012H 3-11.已知 AX=14C6H,BX=80DCH,问执行下列程序段后,程序转向何处? ADD AX,BX JNC L2 SUB AX,BX JNC L3 JMP L4 若初始 AX=B568H,BX=54B7H,情况又如何? 答: 程序转向地址标号 L2 处。 若初始 AX=B568H,BX=54B7H,程序转向地址标号 L4 处。 3-12.如下程序完成什么功能? MOV AX,5000H MOV DS,AX MOV CX,100 MOV AX,0 MOV SI,AX START:ADD AX,[SI+1000H] ADD SI,2 LOOP START MOV [200H],AX 答: 程 序 完 成 内 存 5000H:1000H 开 始 的 连 续 100 个 字 数 据 的 求 和 , 并 将 和 数 存 于 5000H:200H 处。 3-13、试写一程序片段,将当前数据段偏移地址为 2000H 开始的 100 个字节单元内容 与偏移地址为 3000H 开始的 100 个字节单元内容相交换,即:偏移地址 2000H 对应单元内 容与偏移地址 3000H 对应单元内容交换,偏移地址 2001H 对应单元内容与偏移地址 3001H 对应单元内容交换,依此类推。 答: MOV SI, 2000H MOV DI, 3000H MOV CX, 100 REPT0: MOV AL, [SI] MOV BL, [DI] MOV [DI], AL MOV [SI], BL INC SI INC DI LOOP REPT0 3-14.在数据段中偏移地址分别为 1000H 及 2000H 开始的存储区内有两个 10 字节的字 符串,试编写一段程序来比较这两个字符串。如果这两个字符串不同,则程序转至 8000H:1000H 处,否则顺序执行。 答: MOV SI,1000H MOV DI,2000H MOV CX,10 CLD ;装入源串偏移地址 ;装入目的串偏移地址 ;装入字符串长度 ;方向标志复位 REPE CMPSB JCXZ CONTI JMP 8000H:1000H CONTI: NOP 3-15.利用串操作指令将数据段中偏移地址 1000H 开始处的 100 个字节移动到数据段 偏移地址为 1050H 开始的地方。 答: MOV CX,100 MOV SI,1000H+99 MOV DI,1050H+99 STD REP MOVSB ;地址减量方式传送 ;数据块传送(串操作) 第 4 章 汇编语言程序设计 习题 4-1.如下定义: VAR1 DB 4 VAR2 DB 10 CNST1 EQU 12 试指出下列指令的错误原因: (1)MOV CNST1,CX (3)CMP VAR1,VAR2 (2)MOV VAR1,AX (4)CNST1 EQU 24 答: (1) 目的操作数不能是立即数; (2) VAR1 单元定义为字节类型,而 AX 为字; (3) 8086/8088 中两个内存单元不能直接比较; (4) 同一符号名不允许用 EQU 重复定义。 4-2.某人定义了如下数据段: DATA SEGMENT AT 1000H ORG 100H VAL1 DB 11H VAL2 DW 22H, 33H VAL3 DB 5 DUP (44H) DATA ENDS 试指明该数据段中偏移地址从 100H 到 109H 的各存贮单元的内容。 答: 100H: 11H 101H: 22H 102H: 00H 103H: 33H 104H: 00H 105H: 44H 106H: 44H 107H: 44H 108H: 44H 109H: 44H 4-3.对于下面的数据定义,写出各条指令执行后的结果: DATA SEGMENT ORG 0100H AAAA DW 0A244H BBBB DB 33H,66H,92H,29H CCCC EQU WORD PTR BBBB DDDD DB ‘ABCD’ EEEE EQU $-DDDD DATA ENDS 答: (1) MOV AX,AAAA (2) MOV BX,CCCC (3) MOV DX,OFFSET DDDD (4) MOV CL,EEEE AL=( BH=( DL=( CL=(  ) ) ) ) (1) MOV AX,AAAA AL=( 44H (2) MOV BX,CCCC BH=( 66H (3) MOV DX,OFFSET DDDD DL=( 06H ) ) ) (4) MOV CL,EEEE CL=( 04H ) 4-4.试编程序将内存从 50000H 到 5FFFFH 的每个单元均写入数 55H,并再逐个单元读 出比较,看写入的与读出的是否一致。若全对,则将 AL 置 0;只要有错,则将 AL 置 0FFH。 答: START: LOOP1: MOV AX,5000H MOV DS,AX MOV SI,0 MOV CX, 0FFFFH MOV BYTE PTR [SI], 55H MOV AL, [SI] CMP AL, 55H JNZ LOOPERR LOOP2: INC SI LOOP LOOP1 MOV BYTE PTR [SI], 55H ;最后一个单元 MOV AL, [SI] CMP AL, 55H JNZ LOOPERR MOV AL, 0 ;全对 JMP LOOPOUT LOOPERR: MOV AL, 0FFH LOOPOUT: NOP 4-5.编写一个子程序,对 AL 中的 ASCII 字符添加偶校验位(bit7),即:使 AL 中的 “1”的个数为偶数。 答: ADDPARITY PROC NEAR AND AL, 7FH JP ADDEXIT OR AL, 80H ADDEXIT: RET ADDPARITY ENDP 4-6.利用上题的子程序,编程对内存物理地址 10000H 开始的 1024 个单元的 ASCII 字 符加上偶校验位。 答: START: MOV AX,1000H MOV DS,AX MOV SI,0 MOV CX, 1024 LOOP1: MOV AL, [SI] CALL ADDPARITY MOV [SI], AL INC SI LOOP LOOP1 4-7、试写一子程序,完成对一个 8 位无符号数乘 6 的操作。要求:(1)只能用传送、加 法及移位指令;(2)入口参数(即 8 位无符号数)放于 AL 中,出口参数(即乘 6 后的结果) 放于 AX。 答: MULTI6 PROC NEAR PUSH BX MOV AH, 0 SHL AX, 1 MOV BX, AX SHL AX, 1 ADD AX, BX ;乘 2 ;乘 4 ;乘 6 POP BX RET MULTI6 ENDP 4-8.给定如下程序片段: START: MOV AX, 1000H, OV SS, AX OV SP, 000FH OV AX, 1000H USH AX OV BX, 5439H USH BX ALL NEAR PTR SUBRT OP AX STOP0: HLT SUBRT: PUSH BP OV BP, SP VAAX: MOV AX, [BP+4] DD AX, 456AH OV [BP+4], AX OP BP ET 4 问:(1)程序执行到标号为 SUBRT 处的指令时,SP = ?(2)执行完标号为 VAAX 的 MOV 指令后,AX =?(3)执行到标号为 STOP0 处的指令时:SP = ? AX = ? BX = ? CF=? SF=? OF=? 答: (1) 程序执行完标号为 SUBRT 处的“PUSH BP”指令后,SP=0006H (2) 执行完标号为 VAAX 的 MOV 指令后,AX =5439H (3) 程序执行到标号为 STOP0 处的指令时(实际执行“HLT”指令之前): SP = 000CH AX = 99A3H BX = 5439H 以及以下标志寄存器的内容: CF = 0 SF = 1 OF = 1 4-9.自符号地址为 MARK 开始的内存缓冲区中,存有 100 个学生的某门课的考试成绩。 试找出成绩不低于 80 分以及成绩低于 60 分的学生个数,同时求出最高的成绩分及最低的成 绩分数,并将它们分别存于符号地址为 PST、FST、MAXMK 及 MINMK 的四个单元中。要 求写出完整的数据段及代码段。 答: DATA SEGMENT MARK DB 100 DUP(?) PST DW 0 FST DW 0 MAXMK DB 0 MINMK DB 100 DATA ENDS CODE START: AGAIN: HIGHL: MKCHK: HIGHMK:  SEGMENT ASSUME CS:CODE, DS:DATA MOV AX, DATA MOV DS, AX MOV CX, 100 MOV BX, OFFSET MARK MOV AL, [BX] CMP AL, MAXMK JC HIGHL MOV MAXMK, AL ; update highest mark CMP AL, MINMK JNC MKCHK MOV MINMK, AL ; update lowest mark CMP AL, 60 JNC HIGHMK INC FST ; increase the no. of students whose mark < 60 JMP CHKFH CMP AL, 80 JC CHKFH INC PST ; increase the no. of students whose mark >= 80 CHKFH: INC BX LOOP AGAIN MOV AX, 4C00H INT 21H CODE ENDS END START 4-10.编写一段程序,接收从键盘输入的 10 个数(输入回车符后结束),然后将这些数 按位取反后存于 BUFF 开始的缓冲区中。 答: DATA SEGMENT BUFF DB 10 DUP (0) ;数据段 ;数据区 DATA ENDS STACK SEGMENT STACK ‘STACK’;堆栈段 DB 100 DUP(?) STACK ENDS CODE SEGMENT ;代码段 ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV CX, 10 LEA SI, BUFF REPT1: MOV AH, 1 INT 21H ;键入数据 CMP AL, 0DH ;判断是否是回车键 JE NEXT1 ;是,转 NEXT1;否继续输入 NOT AL MOV BUFF, AL DEC CX NEXT1: OR CX, CX JNZ REPT1 MOV AX,4C00H INT 21H CODE ENDS END START 4-11.试编程序完成两个一位十进制数的加法功能。具体步骤与要求如下:(1) 利用 DOS 1 号功能调用,顺序从键盘输入被加数、“+”运算符及加数;(2) 完成相加功能;(3) 将相 加的结果用 DOS 9 号功能调用在屏幕上显示出来。例如:输入 8+6 后,屏幕上应显示相加 结果 14。如果在上述步骤(1)中有非法输入,应在屏幕上显示“Input error”,之后程序须 重新从头开始(即从被加数的输入开始)。 (略) 4-12.试定义一条能对任意寄存器进行左移指定位的宏指令。 答: SHIFT MACRO REG, COUNT LOCAL LEND PUSH CX MOV CL, COUNT CMP CL, 1 JC LEND ; for COUNT < 1, do not shift SHL REG, CL LEND: POP CX ENDM 4-13.某人写了如下宏定义,以将某寄存器中的一位 16 进制数转化为相应的 ASCII 码。 试分析该宏定义是否有错,若有,试指出错误之处及原因。 HEXASC MACRO HEXREG PUSHF CMP HEXREG,10 JL LS10 ADD HEXREG,a-‘0’- 10 LS10: ADD HEXREG,‘0’ POPF RET HEXASC ENDP 答: 错误之处: 开始处缺:LOCAL LS10 应去除 “RET” 语句 “HEXASC ENDP”应为 “ENDM” 4-14.在数据段偏移地址 BUFFER 开始处顺序存放了 100 个无符号 16 位数,现要求编 写程序将这 100 个数据从大到小排序。 (略) 第 5 章 微型计算机总线 习题 5-1.ISA 总线是属于____C______总线。 A.
展开阅读全文
提示  淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:微机基础原理第二版田辉课后材料.doc
链接地址:https://www.taowenge.com/p-2601391.html
关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

收起
展开