微型计算机原理与接口技术冯博琴版本课后答案内容摘要:

NG的偏移地址送寄存器 SI,之后送 SI的内容与 DI的内容相加并将结果送 后 ,(SI)=0017H。 (DI)=(DI)+0017H. 试编写求两个无符号双子长数之和的程序 . 两数分别在 MEM1和 MEM2单元中 ,和放在 SUM单元 . 解 : DSEG SEGMENT MEM1 DW 1122H,3344H MEM2 DW 5566H,7788H SUM DW 2 DUP(?) DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX LEA BX,MEM1 LEA SI,MEM2 LEA DI,SUM MOV CL,2 CLC AGAIN: MOV AX,[BX] ADC AX,[SI] MOV [DI],AX ADD BX,2 ADD SI,2 ADD DI,2 LOOP AGAIN HLT CSEG ENDS END START 写程序 ,测试 AL寄存器的第 4位 (bit4)是否为 0? 解 : 测试寄存器 AL中某一位是否为 0,可使用 TEST指令、 AND指令、移位指令等几种方法实现。 如: TEST AL, 10H JZ NEXT . . . NEXT:… 或者: MOV CL, 4 SHL AL, CL JNC NEXT . NEXT:… 试编写程序,将 BUFFER中的一个 8位二进制数转换为 ASCII码,并按位数高低顺序存放在 ANSWER开始的内存单元中。 解: DSEG SEGMENT BUFFER DB。 ANSWER DB 3 DUP(。 ) DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG START: MOV AX, DSEG MOV DS, AX MOV CX, 3 ;最多不超过 3为十进制数( 255) LEA DI, ANSWER ; DI指向结果存放单元 XOR AX, AX MOV AL, BUFFER ;取要转换的二进制数 MOV BL, 0AH ;基数 10 AGAIN: DIV BL ;用除 10取余的方法转换 ADD AH, 30H ;十进制数转 换成 ASCII码 MOV [DI], AH ;保存当前的结果 INC DI ;指向下一个位保存单元 AND AL, AL ;商为 0。 (转换结束。 ) JZ STO ;若结束,退出 MOV AH, 0 LOOP AGAIN ;否则循环继续 STO: MOV AX, 4C00H INT 21H ;返回 DOS CSEG ENDS END START 假设数据项定义如下: DATA1 DB „HELLO。 GOOD MORNING。 ‟ DATA2 DB 20 DUP(。 ) 用串操作指令编写 程序段,使其分别完成以下功能: ( 1)从左到右将 DATA1中的字符串传送到 DATA2中。 ( 2)传送完后,比较 DATA1和 DATA2中的内容是否相同。 ( 3)把 DATA1中的第 3和第 4个字节装入 AX。 ( 4)将 AX的内容存入 DATA2+5开始的字节单元中。 解: ( 1) MOV AX, SEG DATA1 MOV DS, AX MOV AX, SEG DATA2 MOV ES, AX LEA SI, DATA1 LEA DI, DATA2 MOV CX, 20 CLD REP MOVSB ( 2) LEA SI, DATA1 LEA DI, DATA2 MOV CX, 20 CLD REPE CMPSB。 ( 3) LEA SI, DATA1 ADD SI, 2 LODSW ( 4) LEA DI, DATA2 ADD DI, 5 STOSW , AX寄存器的内容是多少。 TABLE DW 10, 20, 30, 40, 50 ENTRY DW 3 . . . MOV BX, OFFSET TABLE ADD BX, ENTRY MOV AX, [BX] 解:( AX) =1E00H 编写程序段,将 STRING1中的最后 20个字符移到 STRING2中(顺序不变)。 解:首先确定 STRING1中字符串的长度,因为字符串的定义要求以 „$‟符号结尾, 可通过检测 „$‟符确定出字符串的长度,设串长度为 COUNT,则程序如下: LEA SI, STRING1 LEA DI, STRING2 ADD SI, COUNT20 MOV CX, 20 CLD REP MOVSB 假设一个 48位数存放在 DX:AX:BX中 ,试编写程序段 ,将该 48位数乘以 2. 解 : 可使用移位指令来实现。 首先将 BX内容逻辑左移一位,其最高位移入进位位 CF,之后 AX内容带进位位循环左移,使 AX的最高位移入 CF,而原 CF中的内容(即 BX的最高位)移入 AX的最低位,最后再将 DX内容带进位位循环左移一位,从而实现 AX的最低位移入 DX的最低位。 SHL BX, 1 RCL AX, 1 RCL DX, 1 试编写程序,比较 AX, BX, CX中带符号数的大小,并将最大的数放在 AX中。 解:比较带符号数的大小可使用符号数比较指令 JG等。 CMP AX, BX JG NEXT1 XCHG AX, BX NEXT1: CMP AX, CX JG STO MOV AX, CX STO: HLT 若接口 03F8H的第 1位 (b1)和第 3位( B3)同时为 1,表示接口 03FBH有准备好的 8位数据,当 CPU将数据取走后, b1和 b3就不再同时为 1了。 仅当又有数据准备好时才再同时为 1。 试编写程序,从上述接口读入 200字节的数据,并顺序放在 DATA开始的地址中。 解:即当从输入接口 03F8H读入的数据满足ⅹⅹⅹⅹ 1ⅹ 1ⅹ B时可以从接口 03FBH输入数据。 LEA SI, DATA MOV CX, 200 NEXT: MOV DX, 03F8H WAIT: IN AL, DX AND AL, 0AH ;判断 b1和 b3位是否同时为 1 CMP AL, 0AH JNZ WAIT ; b1和 b3位同时为 1则读数据,否则等待 MOV DX, 03FBH IN AL, DX MOV [SI], AL INC SI LOOP NEXT HLT 画图说明下列语句分配的存储空间及初始化的数据值。 ( 1) DATA1 DB „BYTE‟, 12, 12H, 2 DUP( 0,。 , 3) ( 2) DATA2 DW 4 DUP( 0, 1, 2),。 , 5, 256H 解: ( 1) 存储空间分配情况如图( a)所示。 ( 2) 存储空间分配情况如图( b)所示。 第 5章存储器系统 内部存储器主要分为哪两类 ? 它们的主要区别是什么 ? 解 : ( 1)分为 ROM 和 RAM。 ( 2)它们之间的主要区别是:。 ROM在正常工作时只能读出,不能写入。 RAM则可读可写。 断电后, ROM中的内容不会丢失, RAM中的内容会丢失。 为什么动态 RAM需要定时刷新。 解: DRAM的存储元以电容来存储信息,由于存在漏电现象,电容 中存储的电荷会逐渐泄漏,从而使信息丢失或出现错误。 因此需要对这些电容定时进行 “刷新 ”。 CPU寻址内存的能力最基本的因素取决于 ___________。 解:地址总线的宽度。 试利用全地址译码将 6264芯片接到 8088系统总线上,使其所占地址范围为 32020H~ 33FFFH。 解:将地址范围展开成二进制形式如下图所示。 0011 0010 0000 0000 0000 0011 0011 1111 1111 1111 6264芯片的容量为 8 8KB,需要 13根地址线 A0~ A12。 而剩 下的高 7位地址应参加该芯片的地址译码。 电路如图所示: 内存地址从 20200H~ 8BFFFH共有多少字节。 解:共有 8BFFFH- 20200H+ 1= 6C000H个字节。 或 432KB。 若采用 6264芯片构成上述的内存空间,需要多少片 6264芯片。 解:每个 6264芯片的容量位 8KB,故需 432/8= 54片。 设某微型机的内存 RAM区的容量位 128KB,若用 2164芯片构成这样的存储器,需多少 2164芯片。 至少需多少根地址线。 其中多少根用于片内寻址。 多少根用于片选译码。 解: ( 1)每个 2164芯片的容量为 64K 1bit,共需 128/64 8= 16片。 ( 2) 128KB容量需要地址线 17根。 ( 3) 16根用于片内寻址。 ( 4) 1根用于片选译码。 注意,用于片内寻址的 16根地址线要通过二选一多路器连到 2164芯片,因为 2164芯片是 DRAM,高位地址与低位地址是分时传送的。 现有两片 6116芯片,所占地址范围为 61000H~ 61FFFH,试将它们连接到 8088系统中。 并编写测试程序,向所有单元输入一个数据,然后再读出与之比较,若出错则显示 “Wrong。 “,全部正确则显 示 ”OK。 “。 解:连接如下图所示。 测试程序段如下: OK DB „OK!‟,$ WRONG DB „Wrong!‟,$ … MOV AX, 6100H MOV ES, AX MOV DI, 0 MOV CX, 1000H MOV AL, 55H REP STOSB MOV DI, 0 MOV CX, 1000H REPZ SCASB JZ DISP_OK LEA DX, WRONG MOV AH, 9 INT 21H HLT DISP_OK: LEA DX, OK MOV AH, 9 INT 21H HLT 甚什么是字扩展。 什么是位扩展。 用户自己购买内存条进行内存扩充,是在进行何种存储器扩展。 解: ( 1)当存储芯片的容量小于所需内存容量时,需要用多个芯片构成满足容量要求的存储器,这就是字扩展。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。