微型计算机与借口技术习题答案(第4版)(1)知识讲解.doc

上传人:1595****071 文档编号:86479542 上传时间:2023-04-14 格式:DOC 页数:86 大小:1.83MB
返回 下载 相关 举报
微型计算机与借口技术习题答案(第4版)(1)知识讲解.doc_第1页
第1页 / 共86页
微型计算机与借口技术习题答案(第4版)(1)知识讲解.doc_第2页
第2页 / 共86页
点击查看更多>>
资源描述

《微型计算机与借口技术习题答案(第4版)(1)知识讲解.doc》由会员分享,可在线阅读,更多相关《微型计算机与借口技术习题答案(第4版)(1)知识讲解.doc(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。微型计算机与借口技术习题答案(第4版)(1)-微机原理与接口技术习题参考答案第一章(p20)1、参考答案:冯诺伊曼计算机的设计思想(EDVAC方案:存储程序通用电子计算机方案):计算机分为计算器、控制器、存储器、输入和输出装置五个部分;计算机内采用二进制;将程序存储在计算机内,简称“程序存储”。其中第三点是冯诺依曼计算机设计的精华,所以人们又把冯诺依曼原理叫做程序存储原理,即程序由指令组成并和数据一起存放在存储器中,机器则按程序指定的逻辑顺序把指令从存储器中读出来并逐条执行,从而自动完成程序描述的处理工

2、作。冯诺伊曼计算机主要以运算器和控制器为中心,结构框图如下图所示。2、参考答案:微处理器就是中央处理器CPU,是计算机的核心,单独的CPU不能构成计算机系统;微型计算机由微处理器、主存储器、I/O接口(注意:不是I/O设备)组成;而微型计算机系统除了包括微型计算机外,还有系统软件(即操作系统)、应用软件、外存储器和I/O设备等。微型计算机系统结构如下图所示。3、答案略,见p674、答案略,见图2,或教材图1-35、答案略,见p12136、参考答案:由于8086微处理器的地址总线的宽度为20位,所以它可寻址2201M字节的存储空间;而PentiumII微处理器的地址总线的宽度为36位,所以它可寻

3、址236=64G字节的存储空间。7、参考答案:PCI(PeripheralComponentInterconnect:外围设备互联),是Intel公司1992年发布486微处理器时推出的32/64位标准总线,数据传输速率位132MB/s,适用于Pentium微型计算机。PCI总线是同步且独立于微处理器的具有即插即用(PNP:Plugandplay,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序)的特性.PCI总线允许任何微处理器通过桥接口连接到PCI总线上。USB(UniversalSerialBus:通用串行总线),是199

4、4年由Compaq,IBM,Microsoft等多家公司联合提出的。USB有两种规格:V1.1和V2.0,USB1.1传输速度为12M/秒,而USB2.0提高至360到480M/秒。USB2.0是向下兼容USB1.1,这意味着将一个USB2.0的设备插到USB1.1口中,只能按USB1.1的速度运行。USB连接方式十分灵活,支持热插拔,不需要单独的供电系统。可以通过一条4线串行线缆访问USB设备,用于连接键盘、鼠标、投影仪、数码相机等,现在成为每一台计算机都必须配备的标准接口。8、参考答案:DB-Definebyte定义一个字节类型的变量,并为该变量分配内存DWDefineword定义一个字类

5、型的变量,并为该变量分配内存DD.Definedoubleword定义一个双字类型的变量,并为该变量分配内存9、参考答案:(1)1101.01b=13.25d(或13.25)(2)111001.0011b=57.1875(3)101011.0101b=43.3125(4)111.0001b=7.0625如何转换?例如:101011.0101b125+123+12+1+12-2+12-4=32+8+2+1+0.25+0.0625=43.312510、参考答案:(1)A3.3H=1016+3+316-1=163.1875(2)129.CH=1162+216+9+1216-1=297.75(3)AC

6、.DCH=1016+12+1316-1+1216-2=172.259375(4)FAB.3H=15162+1016+11+316-1=4011.187511、参考答案:(1)23=10111B=27Q=17H(2)107=1101011B=153Q=6BH(3)1238=10011010110B=2326Q=4D6H(4)92=1011100B=134Q=5CH12、参考答案:即把下面的数用8位补码表示(1)+32=00100000B(2)-12=11110100B,即求-12的补码(3)+100=01100100B(4)-92=10100100B,即求-92的补码13、参考答案:压缩BCD码

7、就是用4位二进制表示一个09之间的十进制数非压缩的BCD码就是用8位二进制表示一个09之间的十进制数,8位二进制的最高4位可以位任何数,例如0000,09的ASCII码实际上就是09的非压缩BCD码的表示。十进制数压缩BCD码非压缩BCD码10200010000001000000001000000000000001044010001000000010000000100301001100000001000000110000000000000001100000010000000000000000000100000000000000000000000014、参考答案:如果二进制最高位为0,则该数为正

8、数,反之,如果最高位为1,则该数为负数,对其做求补运算就得到其相反数。(1)10000000B=-128(2)00110011B=+51(3)10010010B=-78(4)10001001B=-11915、参考答案:一个单精度浮点数占4个字节(双字),即32位二进制,其中符号位占1位,指数部分占8位,尾数部分占23位。十进制数表示成单精度浮点数的方法如下:填充符号位,如果是正数填0,如果是负数填1将数表示成二进制形式,并进行规格化对于单精度浮点数,指数加上127(7FH);对于双精度浮点数,指数要加上1023(3FFH),并填充指数位填充尾数位(1)+1.5由于是正数,所以符号位为0;写成二

9、进制并规格化得到1.120,由于2的指数是0,所以指数部分以0+127=01111111填充;由知,尾数为1,所以尾数部分以10000000000000000000000(1后面跟22个0)填充,综上,得到+1.5的单精度浮点数表示为:+1.500111111110000000000000000000000B写成十六进制数为:+1.5=3FC00000H(2)-10.625=C12A0000H(3)+100.25=42C88000H(4)-1200.0=C4960000H16、参考答案:(1)01000000011000000000000000000000B=3.5(2)10111111100

10、000000000000000000000B=-1.0(3)01000000010010000000000000000000B=3.125第二章(p55p56)1、答案略,见p22242、答案略,见p24273、答案略,见p334、参考答案(其他可以参照本章相关内容): CPU:又称微处理器,是计算机系统的核心,一般由逻辑运算单元、控制单元和一些寄存器组成。这些寄存器用于CPU在处理数据过程中数据的暂时保存。它主要完成从存储器中取指令,指令译码;算术逻辑运算;在处理器和存储器或I/O接口之间传送数据;程序的流向控制等。 存储器:是计算机系统的记忆部件,主要用来存储程序和数据。存储器一般分为内部

11、存储器和外部存储器两大类。内部存储器(内存)存放当前正在使用或经常使用的程序和数据,CPU可以直接访问;外存存放“海量”数据,相对来说不经常使用,CPU使用时要先调入内存。内部存储器又可以分为随机存取存储器(RAM)和只读存储器(ROM)。计算机系统存储器的三层结构:按存储容量由低到高(或按存取速度由高到低)分为高速缓冲存储器(CACHE)、主存、辅存三层。 堆栈(Stack):堆栈是在存储器中开辟一个区域,用来存放需要暂时保存的数据;当前栈顶单元一般采用SP指向,栈底设在存储器的高地址区,堆栈地址由高到低增长;堆栈的工作方式是“后进先出”,用入栈指令PUSH和出栈指令POP可将数据压入堆栈或

12、从堆栈中弹出数据,栈顶指针SP的变化由CPU自动管理,入栈操作SP减小,出栈操作SP增大;堆栈的操作以字为单位。 机器语言(MachineLanguage):计算机唯一能接受和执行的语言。机器语言由二进制码组成,每一串二进制码叫做一条指令,一条指令规定了计算机执行的一个动作,一台计算机所能懂得的指令的全体,叫做这个计算机的指令系统,不同型号的计算机的指令系统不同。使用机器语言编写程序是一种相当烦琐的工作,既难于记忆也难于操作,编写出来的程序全是由0和1的数字组成,直观性差、难以阅读。不仅难学、难记、难检查、又缺乏通用性,给计算机的推广使用带来很大的障碍。 汇编语言(AssemblyLangua

13、ge):是一种符号语言,它和机器语言几乎一一对应,在书写时使用字符串组成的助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,如微软的宏汇编程序MASM.EXE。汇编程序把汇编语言翻译成机器语言的过程称为汇编。汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。 指令(Instruction)

14、:指令是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。一条指令通常由两个部分组成:操作码+操作数。操作码:指明该指令要完成的操作的类型或性质,如取数、做加法或输出数据等。操作数:指明操作对象的内容或所在的存储单元地址(地址码),操作数在大多数情况下是地址码,地址码可以有03个。5、参考答案:题号标志位值(1)ZF如果相等,ZF1;反之,ZF=0(2)SF如果为正,SF=0;反之,SF=1(3)OF如果溢出,OF=1;反之,OF=0(4)PF如果结果低8位1的个数为偶数,PF=1;反之,PF=0(5)CF如果相减的第一个数小于第二个数,CF=1;反之,CF=0(6)IF如果允

15、许中断,IF=1;如果禁止中断,IF06、答案略,见p36387、参考答案:设存储单元地址由左向右递增,每个字符以它的ASCII码形式存放存储单元中,则字符串Whattimeisit?在内存中的存储状况如下(以十六进制表示):576861742074696D652069732069743F8、参考答案:a) DW1234Hb) DWA122Hc) DWB100H在内存中的分布为(设存储单元地址由左向右递增,存储单元的阿内容以十六进制表示):341222A100B19、参考答案:题号段起始地址段结束地址a)1000H10000H1FFFFHb)1234H12340H2233FHc)2300H23

16、000H32FFFHd)E000HE0000HEFFFFHe)AB00HAB000HBAFFFH注意:段起始地址和段结束地址均为20位的物理地址;段起始的偏移量为0000H,所以段起始地址为段基地址16偏移地址;由于每个段的最大容量为64K字节,段结束的偏移量为FFFFH,所以段结束地址为段基地址16偏移地址段基地址16FFFFH10、参考答案:a) CS:IP=1000H:2000H下一条指令的存储器地址为(CS)16+(IP)=12000Hb) CS:IP=2000H:1000H下一条指令的存储器地址为(CS)16+(IP)=21000Hc) CS:IP=1A00H:B000H下一条指令的

17、存储器地址为(CS)16+(IP)=25000Hd) CS:IP=3456H:AB09H下一条指令的存储器地址为(CS)16+(IP)=3F069H11、参考答案:a) DS=1000H,DI=2000H存储单元地址为:(DS)16+(DI)=12000Hb) SS=2300H,BP=3200H存储单元地址为:(SS)16+(BP)=26200Hc) DS=A000H,BX=1000H存储单元地址为:(DS)16+(BX)=A1000Hd) SS=2900H,SP=3A00H存储单元地址为:(SS)16+(SP)=2CA00H12、参考答案:堆栈段在存储器中的物理地址(即堆栈段的起始地址)为:

18、(SS)16+0000H=35000H入栈10个字节后,SP=0800H-10=07F6H再出栈6个字节,SP=07F6H+6=07FCH13、参考答案:示意图如左图所示,如果要读取这两个字,则需要对存储器进行三次操作。由于字2A8CH存放在偶地址开始的单元,所以只进行一次存储器操作就可以读取该字;由于字1EE5H存放在奇地址开始的单元,所以需要进行两次存储器操作才可以读取该字。14、参考答案:段段起始地址段结束地址DS10E40H20E3FHES10F40H20F3FHSS21F00H31EFFHCS31FF0H41FEFH可见,DS和ES有部分的重叠,重叠区域大小为:20E3FH-10F4

19、0H+1=FF00H字节;ES和SS之间有空隙,空隙的大小为:21F00H-20F3FH+1=0FC2H字节;SS和CS之间有空隙,空隙的大小为:31FF0H-31EFFH+1=00F2H字节OFSFZFCF均为017、参考答案:IF标志位控制INTR引脚20、答案略,见p5021、答案略第三章(p120p123)1、参考答案:题号源操作数寻址方式目的操作数寻址方式(1)立即寻址寄存器寻址(2)立即寻址寄存器寻址(3)寄存器间接寻址寄存器寻址(4)寄存器寻址寄存器相对寻址(5)寄存器寻址寄存器相对寻址(6)立即寻址基址变址寻址(7)基址变址寻址寄存器寻址(8)寄存器寻址相对基址变址寻址(9)直

20、接寻址*寄存器寻址(10)寄存器寻址寄存器寻址*对于IN指令,如果是长格式,源操作数的数字不是立即数,而是端口地址,所以源操作数的寻址方式是直接寻址;如果是短格式,即端口地址存放在DX寄存器中,则源操作数的寻址方式为寄存器间接寻址,如:INAX,DX对于OUT指令,如果是长格式,目的操作数的数字不是立即数,而是端口地址,所以目的操作数的寻址方式是直接寻址,如OUT20H,AL;如果是短格式,即端口地址存放在DX寄存器中,则目的操作数的寻址方式为寄存器间接寻址,如:OUTDX,AX2、参考答案:题号源操作数寻址方式源操作数有效地址源操作数物理地址指令执行后AX中的内容(1)立即寻址-0200H(

21、2)直接寻址0200H10200H2A10H(3)寄存器寻址-0200H(4)寄存器相对寻址0203H10203H5946H(5)基址变址寻址0202H10202H463CH(6)相对基址变址寻址0204H10204H6B59H注:10200H10205H单元存储状况如左图所示3、参考答案:题号源操作数寻址方式源操作数有效地址源操作数物理地址(1)直接寻址0100H(DS)16EA=10100H(2)直接寻址0030H(DS)16EA=10030H(3)寄存器间接寻址0100H(DS)16EA=10100H(4)寄存器间接寻址0100H(ES)16EA=20100H(5)寄存器间接寻址00A0

22、H(DS)16EA=100A0H(6)寄存器相对寻址0110H(DS)16EA=10110H(7)寄存器间接寻址0200H(SS)16EA=35200H(8)相对基址变址寻址02D0H(SS)16EA=352D0H(9)相对基址变址寻址0154H(DS)16EA=10154H(10)基址变址寻址0224H(SS)16EA=35224H5、参考答案:(1)该数据段的存储状况如下表所示:ABCDE000102030405060708090A0B0C0D0E0F101112131415162410434F4D50555445523412FF0000000000009A450012注:表格的第一行为变

23、量名称;第三行的每个小格子代表一个存储单元;第二行为存储单元的偏移地址以十六进制表示,从中可以看出各变量在数据段中的偏移地址,A的偏移地址为0000H,B的偏移地址为0002H,C的偏移地址为000AH,D的偏移地址为000EH,E的偏移地址为0013H;第三行为存储单元的具体内容,以十六进制表示。(2)写出各条指令执行后的结果指令执行后的结果MOVAL,AAL=24HMOVDX,CDX=1234HXCHGDL,ADL=24H,A变量的第一个单元的内容变为34HMOVBX,OFFSETBBX=0002HMOVCX,3BXCX=5550HLEABX,DBX=000EHLEASI,ESI=0013

24、HLEADI,EDI=0013H6、参考答案:题号错误原因(1)两操作数的类型不一致(2)立即数不能做目的操作数(3)立即数不能直接传送给段寄存器(4)两操作数不能同时为存储器操作数(5)IP寄存器的内容不能由用户更改,而由系统自动修改(6)正确(7)两基址寄存器不能放在一起使用(8)正确(9)两变址寄存器不能放在一起使用(10)不能取立即数的偏移地址,OFFSET操作符使用不当(11)存储单元的偏移地址应为字类型,不能放到字节寄存器中(12)XCHG指令的操作数不能为立即数(13)IN指令从端口读取的数据只能放在累加器AL或AX中(14)OUT指令的源操作数应为累加器,目的操作数应为端口地址

25、,且如果端口地址超过0FFH(255),端口地址应放在DX寄存器中7、程序片段如下:LEABX,TABLEMOVAL,57MOVAH,0MOVDL,10DIVDLPUSHAXXLATMOVCH,ALPOPAXMOVAL,AHXLATMOVCL,ALMOVBX,CX8、解答:SP的变化情况指令执行后SP内容PUSHAXSPSP-200FEHPUSHBXSPSP-200FCHPOPBXSPSP+200FEHPOPAXSPSP+20100H9、已知AX=1234H,BX=3456H,CX=5678H,DX=789AH,CF=1则单独执行下列各条指令后,各相关寄存器内容是什么?题号指令执行后相关寄存器

26、内容(1)AL=0ACH(2)BX=8ACFH(3)AX=EB24H(4)BX=3455H(5)CX=0A988H(6)BL=57H(7)乘积为双字存放在DX:AX中:DX=03B8HAX=0AD78H(8)商存放在AL中,余数存放在AH中:AL=26HAH=64H10、参考答案:题号结果CF(1)AH=04H0(2)BL=36H0(3)AX=0DAF7H0(4)CX=0FFF4H0(5)相关寄存器内容没有改变0(6)相关寄存器内容没有改变0(7)DX=0186H0(8)AL=04H0(9)BH=0F0H0(10)AX=4A10H0(11)BX=1E6CH0(12)DX=4186H011、参考

27、答案:(1)程序片段如下:LEASI,STRINGLEADI,GET_CHARMOVCX,26CLDREPMOVSB(2)程序片段如下:先定义一个附加段,用来存放ThecomputerEXTRASEGMENTS2DBThecomputerEXTRAENDSLEASI,STRINGLEADI,S2MOVCX,12CLDREPZCMPSBJZNEXT;若比较的两个字符串相同,则跳到NEXT执行MOVAL,0;若比较的两个字符串不相同SUBCL,12NEGCLMOVBL,CL;比较的次数存入BL中RETNEXT:MOVAL,1MOVBL,12RET(3)程序片段如下:LEADI,STRING;被查找

28、的字符串STRING作为目的串MOVAL,&MOVCX,26CLDREPNZSCASBJNZEXIT;如果没有找到,直接退出DECDI;找到&字符的位置MOVBYTEPTRES:DI,20H;用空格字符替换EXIT:RET(4)完整的程序如下*:;这里的DATA既作为数据段,又作为附加段,即数据段和附加段公用一个段DATASEGMENTSTRINGDBThePersonalComputer&TVCOUNTEQU$-STRINGCAPSDBCOUNTDUP(0)CHARTDBCOUNTDUP(0)DATAENDSCODESEGMENTASSUMEDS:DATA,ES:DATA,CS:CODEMA

29、INPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX;把字符串中大写字母传送到CAPS开始的单元中LEASI,STRINGLEADI,CAPSMOVCX,COUNTCLDAGAIN1:LODSBCMPAL,41HJBNEXT1CMPAL,5AHJANEXT1STOSBNEXT1:LOOPAGAIN1;把字符串中其余字母传送到CHART开始的单元中LEASI,STRINGLEADI,CHARTMOVCX,COUNTCLDAGAIN2:LODSBCMPAL,41HJBNEXTCMPAL,5AHJBENEXT2NEXT:STOSBNEXT2:

30、LOOPAGAIN2;将STRING字符串清零LEADI,STRINGMOVAL,0MOVCX,COUNTCLDREPSTOSBRETMAINENDPCODEENDSENDMAIN12、完整的程序如下:CODESEGMENTASSUMECS:CODEMAINPROCFARPUSHDSXORAX,AXPUSHAXXORSI,SI;SI中存放DX中1的个数XORDX,DXMOVAX,1234HMOVCX,16AGAIN:RORAX,1JNCNEXTINCSIPUSHCXDECCLMOVBX,1SHLBX,CLORDX,BXPOPCXNEXT:LOOPAGAINRETMAINENDPCODEENDS

31、ENDMAIN程序的运行结果:AX=1234H(0001001000110100)DX=2C48H(0010110001001000)SI=0005H,结果正确,DX和AX中的内容刚好相反13、参考答案:指令跳转类型程序的转向*(1)JMPPROG_N段内直接跳转IP=0278H(2)JMPBX段内间接跳转IP=(BX)=0300H(3)JMPBX段内间接跳转IP=(DS)16(BX)=(20300H)=4800H(4)JMPFARPROG_F段间直接跳转IP=0ABCHCS=3400H(5)JMPDWORDPTRBX段间间接跳转IP=(20300H)=4800HCS=(20302H)=00F

32、FH*如果是段内转移,跳转指令只改变IP寄存器的内容,前三条跳转指令是段内跳转;如果是段间跳转,跳转指令同时改变IP和CS寄存器的内容,后两条跳转指令是段间跳转。14、参考答案:寄存器LOOPNEXTLOOPENEXTLOOPNENEXTAX2345223BX471116447CX3210332DX1000110注意:三个循环指令LOOP、LOOPE和LOOPNE终止循环的条件是不一样的。15、参考程序片段如下:;定义数据段DATASEGMENTARRAYDB60,65,72,76,77,66,79NEWDB7DUP(0)SUMDB0AVERAGEDB0DATAENDS;程序代码如下MOVCX

33、,7MOVSUM,0MOVSI,0NEXT:MOVAL,ARRAYSIADDSUM,AL;总分存入SUM中ADDAL,5MOVNEWSI,ALINCSILOOPNEXTMOVAL,SUMMOVAH,0MOVCL,7DIVCLMOVAVERAGE,AL;平均分存入AVERAGE中16、参考答案:中断向量表的作用:中断向量表用于存放256种中断的中断服务程序的入口地址,每种类型中断的中断服务程序的入口地址占用4个字节,存储CS和IP,总共需要1024个字节,即1K字节。中断向量表位于内存的最低1K字节,地址范围为:00000H003FFH。类型3的中断的中断服务程序的入口地址存放在:0000CH0

34、000FH这四个单元。17、参考答案:如下图所示解释:由于中断类型号为n=2,所以该类型中断的中断服务程序入口地址占据内存最低1K字节的n4,n4+1,n4+2,n4+3四个单元。前两个单元存放中断服务程序IP值,即0016H,后两个单元存放中断服务程序的CS值,即0485H。由于CS和IP值均为一个字,所以在存放中断服务程序入口地址的CS和IP值时,低位字节存放在低地址区,高位字节存放在高地址区。18、参考答案:(1)中断类型号为16(2)该中断服务程序的起始地址是:CS:IP=D169H:240BH解释:由于中断向量表中地址为0040H开始存放某类型中断的中断服务程序的入口地址,所以004

35、0H除以4就可以得到该类型中断的中断类型号n,即n=16。中断服务程序的入口地址的CS值存放在0042H单元里,IP值存放在0040H单元里。19、参考答案:中断类型号(专用中断)响应中断的条件0:被0除当除数为0或商超过了寄存器所能表示的范围,就产生了一个类型为0的中断1:单步中断,由Debug单步调试引起当TF=1,每条指令执行后,CPU自动产生类型为1的中断2:NMI不可屏蔽中断,用来处理紧急事件,如:电源掉电,CPU必须予以响应3:断点中断,由Debug设置断点引起用debug调试程序时,可用g命令设置断点,当CPU执行到断点时便产生类型为3的中断,同时显示当前各寄存器和有关存储器的内

36、容及下条要执行的指令,供用户检查。4:溢出中断如果当前运算的结果产生溢出,则OF=1,下面紧跟溢出中断指令INTO,立刻产生一个类型为4的中断第四章(p205p206)1、参考答案(写出各变量在内存中的存储状况)A1DW23H,5678HA2DB3DUP(?),0AH,0DH,$A3DD5DUP(1234H,567890H)A4DB4DUP(3DUP(1,2,ABC)变量A1占4个字节,在内存中的存储状况(以十六进制表示,从左到右地址依次增加,以下同):23007856变量A2占6个字节,在内存中的存储状况:0000000A0D24变量A3占40个字节,在内存中的存储状况:3412000090

37、785600(下划线部分再重复4遍)变量A4占60个字节,在内存中的存储状况:010241424301024142430102414243010241424301024142430102414243010241424301024142430102414243010241424301024142430102414243(带下画线部分重复4遍)2、参考答案(写出各指令执行后的结果)指令结果MOVAX,00FFHAND1122H+3344HAX=0066H,先加后与MOVAL,15GE1111BAL=0FFHMOVAX,00FFHLE255+6/5AX=0FFFFH,先加后比较ANDAL,50MOD

38、4AL=02HORAX,0F00FHAND1234OR00FFHAX=0FFFFH,先与后或,再把计算的结果同AX进行或运算,最终结果保存在AX中3、参考答案:L=6,L的值实际就是BUF变量在内存中占有的字节数。4、参考答案:PLENGTH=22,PLENGTH的值实际就是三个变量PAR、PNAME和COUNT在内存中占有的总的字节数。5、参考答案:AX=1BX=20CX=16、参考答案:AH=00H7、(1)利用中断调用产生5秒延时datasegmentsdb5secondisgone,13,10,$dataendscodesegmentassumecs:code,ds:datamainp

39、rocfarmovax,datamovds,axmovah,2chint21h;取得当前时间:ch时cl分dh秒dl1/100秒movbl,dhcontinue:movah,2chint21hsubdh,blcmpdh,5jbcontinue;判断两次取得时间间隔是否为5秒钟,如果不是则继续读取时间leadx,s;如果达到5秒,则显示一条信息movah,9int21hmovax,4c00hint21hmainendpcodeendsendmain(2)利用中断调用,在屏幕上显示19之间的随机数思路:利用DOS系统功能调用得到当前时间,其中的dl寄存器中存放的是1/100秒,可以用来产生随机数。

40、codesegmentassumecs:codemainprocfarmovah,2chint21hmoval,dl;取得1/100秒,不同时间运行该程序时得到的这个数字也不一样,具有随机性movah,0movbl,9;除以9divbl;相除后的余数ah的范围为08incah;加1后得到19之间的数addah,30h;转换为ASCII码movdl,ahmovah,2int21h;在屏幕上显示该数movax,4c00hint21hmainendpcodeendsendmain题号代码转换第8题二进制十进制第9题十进制二进制第10题二进制十六进制第13题十六进制十进制(十六进制二进制二进制十进制)

41、第14题二进制十进制从表中,我们可以看到,四种代码转换:二进制十进制十进制二进制二进制十六进制十六进制二进制。由低进制到高进制转换用除法运算(右移指令)实现,转换前的二进制数一般是存储在计算机中,转换后结果一般用于显示,这需要把转换后的结果转换为ASCII码;由高进制到低进制转换用乘法运算(左移指令)实现,转换前的数一般是从键盘上输入的,转换后的二进制数一般是存储在计算机中的。8、(1)二进制到压缩BCD码的转换。把AX中的二进制数转换为压缩的BCD码,仍然存放AX寄存器中。(p180181)例如:如果AX中的二进制数为0010011010010100B=2694H,化成十进制数是9876,其

42、压缩的BCD码是1001100001110110,用十六进制表示是9876H。即这种转换实际就是把2694H转换为9876H。考虑到AX中能够存放的最大的四位压缩BCD数为9999H,所以在转换之前需要判断AX中的二进制数不能超过9999,即270FH。具体算法实现:实质是二进制到十进制的转换,把AX依次同1000、100、10、1相除之后取出千位数、百位数、十位数和个位数;输入参数:AX中存放的是二进制数;输出参数:BX中存放的是转换之后的4位压缩BCD码bin2decprocfarcmpax,9999jaexitpushcxpushdxxordx,dxmovbx,1000divbx;dx:

43、ax/bx=ax.dxxchgax,dxmovcl,4shldx,cl;存放千位数movbl,100divbl;ax/bl=al.ahadddl,al;存放百位数movcl,4shldx,clxchgal,ahxorah,ahmovbl,10;ax/bl=al.ahdivbladddl,al;存放十位数movcl,4shldx,cladddl,ah;存放个位数movbx,dx;bx中存放的是转换后的十进制数popdxpopcxexit:retbin2decendp(2)压缩BCD码转换为二进制数;输入参数:bx中存放4位压缩BCD码;输出参数:转换后的二进制数存放在BX寄存器中;算法:分别取出AX的千位数、百位数、十位数和个位数,千位数1000百位数100十位数10个位数,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

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

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