微机原理与接口技术第四版周何琴课后习题答案_第1页
微机原理与接口技术第四版周何琴课后习题答案_第2页
微机原理与接口技术第四版周何琴课后习题答案_第3页
微机原理与接口技术第四版周何琴课后习题答案_第4页
微机原理与接口技术第四版周何琴课后习题答案_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、用來存放数据和指令。I/O接口:主机和外设间的桥梁提供数据缓冲驱动.信号电平转换、信息转换、地址详码、定时控制等 各种功能。I/O设备:输入原始数据和程序转换成计算机能识别的信息,送入存储器去等待处理。输出运算结果。 总线:连接计算机系统中各功能部件的信息通道。第2章8086CPU作业2. 8086CPU部由哪两部分组成?它们的大致是如何工作的?答:(1)8086CPU由指令执行部件EU和总线接口部件BIU两部分组成。(2) BIU先执行读存储器操作,从给定地址讥元中取出指令,送到先进先出的扌旨令队列中等待执行。存储器的物理地址=CSxl6+IP.在地址加法器中形成。 EU从抬令队列中取走抬令

4、.经EU控制器译码分析后,向各部件发控制命令.以完成执行抬令的 操作。BIU与EU是并行工作方式。 十指令队列已满,EU在执行指令.未向总线接口取元BIU中请读/写存或I/O操作时.BIU处于空 闲状态。 抬令执行过程中.若需对存储器或I/O端口存取数据,EU就耍求BIU去完成相应的总线周期。5两个带符号数1011 0100B和1100 0111B相加,运算后各标志位的值等于多少?哪些标志位是有意 义的?如果把这两个数当成无符号数,相加后哪些标志位是有意义的?解:(1)两个带符号数:不考虑CF标忐1011 0100+ 1100 01111 0111 1011运算后各标吉位状态如下:CF=1,有

5、进位.对于带符号数.无总义。PF=h结果有偶数个1AF=0,无半进位.非BCD码运算,无总:义。ZF=0,结果非0SF=0,结果为正数OF=h溢出(两个负数相加,结果变成了正数)(2)两个无符号数:不考康SF和OF标吉1011 0100+ 1100 01111 0111 1011运算后各标,忐位状态如下:CF=1,有进位PF=L结果有偶数个1ZF=0,结果非0AF、SF. OF无意义。20.简要解释下列名词的意义CPU:中央处理单元CPU (Control Processing Unit)也称微处理器.是微型汁算机的核心部件由运 算器ALU.控制器、寄存器组以及总线接口等部件组成。主嬰完成徐种

6、运算.负责对整机的控制。存储器:用于存储程序和数据的砚件设备。堆栈:堆栈是一种数据结构,是部RAM的一段区域。设迓堆栈的目的是用于数据的暂存,中断、子 程序调用时断点和现场的保护与恢复。IP:指令指针寄存器,用于控制CPU的抬令执行顺序(只存放偏移虽人只能和代码段寄存器CS配 合使用,可以确定、前所要取的指令的存地址.且始终指向代码段中下一条将要读取到CPU抬令队列的那 条指令c顺序执行程序时,CPU每収一个抬令字节,IP自动加1.扌斤向下一个題读取的字节。SP:堆栈抬针寄存器,用于指示堆栈的栈顶地址偏移址的寄存器,它决定了堆栈在部RAM中的物理 位迓。只能和SS段寄存器配合使用,且始终指向堆

7、栈的栈顶.在堆栈抬令中隐含的使用它來定位栈顶数据。BP:基址指针寄存器。用干存放偏移虽.通常和SS段寄存器配合使用.在间接寻址中用于定位堆栈 段中的存单元。段寄存器:由于CPU部的寄存器都是16位的,为了能够提供20位的物理地址,8086系统中采用f 存储器分段的方法。规定存储器的一个段为64KB.由段寄存器來确定存储贰元的段基址.由抬令提供该单 元相对于相应段起始地址的16位偏移虽。状态标志:表示前一步操作(如加、减等)执行以后,ALU所处的状态.后续操作可以根据这些状态 标,忐进行判断.实现转移。控制标志:可以通过指令人为设宜.用以对某一种持定的功能起控制作用(如中断屏蔽等九反映人 们对微

8、机系统匸作方式的可控制性。物理地址:存储器的实际地址.它是抬CPU和存储器进行数据交换时所使用的地址。物理地址是由段 地址与偏移地址共同决定的计算物理地址的表达式为:物理地址=段地址X16+偏移地址逻辑地址:是在程序中使用的地址.它由段地址和偏移地址两部分组成。逻输地址的表示形式为段地址:偏移地址“。机器语言:直接用二进制编码表述的抬令系统语言,通常称为机器语言,机器语言抬令是计算机惟一 能直接识别和执行的抬令。汇编语言:便于记忆和使用.通常使用汇编语言(符号抬令或抬令助记符)來描述讣算机的指令系统。 指令:让讣算机完成某种操作的命令称为指令。描令系统:一台il算机所能识别.执行的抬令的集合就

9、是它的扌斤令系统。总线:连接计算机系统中其他主要功能部件的桥梁.是il算机系统息输送的枢纽,只有通过总线.计 算机系统的幹部件才能实现相互通信。部总线:微处理器部备个器件之间传送信息的通路。系统总线:微处理机机箱的底板总线。可分为:ISA、EISA. VESA局部总线、PCI局部总线等。时钟周期:CPU时钟频率的倒数称为时钟周期,也称T状态。总线周期:BIU完成一次访问存储器或I/O端口操作所需要的时间称为总线周期。一个基木的总线周 期是由4个(或4个以上)时钟周期组成的指令周期:执行一条抬令所需要的时间称为抬令周期.不同指令的抬令周期的长短是不同的 一个指 令周期是由几个总线周期组成的。21

10、要完成下列运算和控制.用什么标志判别?其值是什么?(1)比较两数是否相等?(2)两数运算后结果是正数还是负数?(3)两数相加后是否溢出?(4)奇偶校验判断。(5)两数相减后比较大小。(6)中断伯号能否允许?答:(1)比较两数是否相等两数相减后用零标吉ZF判断,ZF=h则相等。(2)两数运算后结果是正数还是负数:用符号标志SF判断.SF=L则结果为负数。(3)两数相加后是否溢出:用溢出标总OF判断,OF=1,则有溢出。(4)奇偶校验判断:采用偶校验方式,判定是否要补T、?用奇偶标总PF判断.若数据结果低8位中 含有偶数个则PF=I:不用补(5)两数相减后比较大小:ZF=L两数相等。对于无符号数.

11、CF=1,则被减数小于减数:CF=0.则 被减数大于减数:ZF=1则两数相等。对于带符号数,SFOF=1则被减数小干减数;SFOF=0,则被 减数大于减数。中曲信号能否允许:用中断允许标总IF判断 IF=1则能允许可屏蔽中断。22.说明8086系统中最小模式嘟囁大模式”两种工作方式的主要区别最小模式(最小匸作方式):单微处理器系统(系统中只有一个8086微处埋器),所有的总线控制信 号,都是直接由8086CPU产生的.适用于规模较小的微机应用系统。把8086的33脚MN/MX接+5V时.8086 CPU就处于最小匸作方式。最大模式(最大匸作方式):藝微处理器系统(包含有两个或多个微处理器.一个

12、主处理器8086CPU, 其他的处理器称为协处埋器它们是协助主处理器匸作的。)主要用在中等或大规模的8086系统中。“I把8086的33脚MN/N1X接地时,8086 CPU就处于最大模式。第3章作业1分别说明下列指令的源操作数和目的操作数各采用什么寻址方式.源目的(l)MOV AX, 2048H立即寻址寄存器寻址(2) MOV CL, OFFH立即寻址寄存湍寻址 MOV BX. SI寄存器间接寻址寄存器寻址 MOV5|BX,BL寄存器寻址寄存湍相对寻址(5) MOV BP+100HLAX寄存濡寻址寄存器相对寻址(6) MOV |BX+DIL $(7) MOV DX, ES:(BX+SI MO

13、V VALfBP+DIb DX INAL. 05H址即J址基址变址寻址 寄存器寻址I/O瑞口 J址(或直接寻址)基址变址寻址寄存器寻址相对基址加变址导址寄存器寻址(lO)MOVDS.AX寄存器寻址寄存器寻址2.已知:DS=100()H, BX=0200H, SI=02H,存 10200H-10205H 单元的容分别为 10IL 2AH, 3CH, 46H, 59H,6BH。下列每条指令执行完后AX寄存器的容各是什么?(l)MOV AX,0200H:AX容(AX )=020011(2) MOV AX, 200HJ:(AX)=2A10H MOV AX. BX :(AX)=0200H(4) MOV

14、AX. 3|BX:(AX)=5946H(5) MOVAXJBX+SI);(AX)=463CH(6) MOV AX, 2BX+SI:(AX)=6B59H(1) MOV DL. AX(2) MOV 8650H,AX(3) MOV DS. 0200H(4) MOV(BX,1200H)(5) MOV IP.OFFH(6) MOV (BX+SI+3,IP(7) MOV AX. |BXBP|(8) MOVAL.ES:|BP(9) MOV DL. |S川DI(10) MOV AX. OFFSET 0A20H(12) XCHGAL. 50H(13) INBL,05H(14) OUTAL.OFFEH6.指岀下列

15、指令中哪些是错误的,错在什么地方错误,源和目的操作数类型不匹配.DL是8位寄存器,AX是16位 寄存器。错误,立即数不能作为目的操作数。错误.不能用立即数直接给段寄存器赋值。错误,不能在两个存储収元之间直接传送数据锚误 IP不能作目的操作数或不能用立即数直接给IP寄存器賦值。 错误,IP不能作源操作数。错误.基址变址寻址方式必须是一个基址寄存器与一个变址寄存器, 不能两个同时为基址寄存器(BX. BP均为基址寄存器)。正确。错误,基址变址寻址方式必须是一个基址寄存器与一个变址寄存器, 不能两个同时为变址寄存器(SI、DI均为变址寄存湍)。错误,OFFSET后必须是存储农元标号地址.不能是立即数

16、。(11) MOV AL. OFFSET TABLE 错误,操作数类空不匹配,AL为8位,TABLE为16位。错误,交换指令XCHG的操作数不能是立即数。错误 IN指令的目的操作数必须是累加器错误.OUT抬令的源操作数必须是累加器.目的操作数为8位I/O端口地址或用DX做桥梁的16位I/O端口地址。10.已知AX=2508Ht BX=0F36H, CX=0()04H, DX=1864Ht求下列每条指令执行后的结果是什么?标志 位CF等于什么?(1) ANDAH,CL(AH) =04HCF=0(2) OR BL, 30H(BL) =36HCF=0(3) NOTAX(AX) =0DAF7H CF

17、不变(不影响 CF)(4) XORCX,OFFFOH(CX) =0FFF4H CF=0(5) TESTDH,0FH(DH) =18HCF=0(6) CMPex,OOH(CX) =000411CF=0(7) SHRDX,CL(DX) =0186HCF=0(8) SARAL,1(AL) =04HCF=0(9) SHLBH.CL(BH) =0F0HCF=0(AX) =4A10H CF=OCF=1, (BX) =1E6DIL CF=O, (BX) =1E6CH CF=O(DX) =418611 CF=O(10) SAL AX, 1(11) RCL BX, 1(12) ROR DX, CL11. 假设数

18、据定义如下:DATA SEGMENTSTRING DB The Personal Computer & TVDATA ENDS试用字符串操作指令编程完成以下功能: 把该字符串传送到附加段中偏移地址为get_char开始的存单元中。 解:程序段如下:LEA SL STRING:宜源串偏移地址LEADI,GET.CHAR:宜目的串備移地址MOVCX.26:置串长度CLD:方向标志复位REPMOVSB:字符串传送12. 编程将AX寄存器中的容以相反的次序传送到DX寄存器中,并要求AX中的容不被破坏,然后统计 DX寄存器中1的个数是多少。解:将AX的容用ROR循环右移,16次之后AX的容不变(如果用算

19、术/逻辑右移SHL/SAL,则AX的容 破坏.需要用堆栈PUSHUAX/POPAX保护),其最低位移入CF中.再使用RCL循环左移将CF中的值移 入DX中。并且.如果CF的值为1,则将BL加1。MOV CX 16XOR BL. BLLP1: ROR AX. IJNC LP2INC BLLP2: RCLDXJLOOP LPIHLT调试程序:STACKSEGMENT STACKDB 100 DUP( ?)STACK ENDSDATA SEGMENTBUF DW 12BUF1 DW 100 DUP(?)DATAENDSCODESEGMENTASSUME CS:CODE.DS:DATASS:STACK

20、START:PUSH DSMOV AX.D/CTAMOV DS.AXMOV AXJ234HMOV CX. 16XOR BL. BLLP1:ROR AX. 1JNC LP2INC BLLP2:RCL DXLOOP LP1HLTCODEENDSEND START15.某班有七个同学的英语成绩低于80分,分数存在ARRAY数组中,试编程完成以下工作:给每人加5 分,结果存到NEW数组中.解:STACK SEGMENT STACKDB 100 DUR?)STACK ENDSDATA SEGMENTARRAY DB 7 DUPC?)NEW DB 7 DUP(?)DATA ENDSCODE SEGMENT

21、ASSUME CS:CODE.DS:DATA.SS:STACKSTART:MOV CX, 7MOV BX. 0LP1:MOV AL. ARRAY|BXADD AL. 05HDAAMOV NEWfBXIbALINC BXLOOP LP1HETCODE ENDSEND START调试程序:STACK SEGMENT STACKDB 100DUP(?)STACK ENDSDATA SEGMENTARRAY DB 65H.76IL78H.54H.90H.85H.68HNEW DB 7 DUP(?)BUF1 DW 100DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE.

22、DS:DATA.SS:STACKSTART: PUSH DSMOV AX.D/VTAMOV DS.AXMOV CX, 7MOV BX.OLP1:MOV AL.ARRAY|BXADD AL. 05HDAAMOV NEWBXIbALINC BXLOOP LP1HLTCODE ENDSEND START某班有七个同学的英语成绩低于80分,分数存在ARRAY数组中,试編程完成以下工作:(1) 给每人加5分,结果存到NEW数组中(2) 把总分存到SUM单元中(3) 把平均分存到AVERAGE单元中解:STACK SEGMENT STACKDB 100DUP(?)STACK ENDSDATA SEGMEN

23、TARRAYDB 7 DUP(?)NEWDB 7 DUP(?)SUMDWOAVGDBODATA ENDSCODE SEGMENTASSUME CS:CODE.DS:DATA.SS:STACKSTART:MOV CX. 7MOV SL 0MOV SUM. 0MOV AH 0LP1:MOV AL. ARRAY|SI|ADD AL 05HDAAMOV NEWSI,ALADD AL ,SUMDAAMOV SUM.ALADC AI10DAAMOV SUM+l.AHINC SILOOP LP1MOV AX. SUMMOV BL.07HDIV BLMOV AVG ALHETCODE ENDSEND STAR

24、T调试程序:STACK SEGMENT STACKDB 100 DUR?)STACK ENDSDATA SEGMENTARRAYDB65H76IL78H54H.9OH85H68HNEWDB7 DUP(?)SUMDB00H.00HAVGDBOBUF1 DW 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE.DS:DATASS:STACKSTART: PUSH DSMOV AX.D/VTAMOV DS.AXMOV CX, 7MOV SI, 0MOV SUM. 0MOV AH. 0LP1:MOV AL,ARRAY(SI1ADD AL. 05HDAAMOV N

25、EWfSIJ.ALADD AL. SUMDAAMOV SUM.ALADC AH.OMOV SUM+l.AHINC SILOOP LP1MOV AL. SUMMOV AH.SUM+1MOV BL,07HDIV BLMOV AVG ALHLTCODE ENDSEND START13. 设 CS=1200H, IPOIOOH, SS=5000H, SP=0400H, DS=2000IL SU3000H, BX-0300H, (20300H)=4800H9 (20302H)=00FFH, TABLE=0500H, PROG.N 标号的地址为 1200:0278 H, PROG_F 标号的地址为 340

26、0:0ABCHo说明下列每条指令执行完后.程序分别转移到何处执行?JMP指令(1) JMP PROG.N段直接近转移目的地址为1200H:0278H(或12278H)(2) JMP BX段寄存器间接转移,目的地址为12OOH:O3OOH(或123OOH) JMPIBX物理地址=。3E.t.6Ui 13CE:R0fiR砺56R75EF55D-C3955RBEC81EC9G.Um. J.-U13CE:0070Sfi045E26RR47-RR8946F826837FR6u.mF&.六条程序执行结果如下:(AL) =01H;设置变量类型属性,字节数(BL) =02H;设置变量类型属性,字节数(CL)

27、=04H;设置变最类型属性,字节数(AH) =0FFH;设置GO显示类型,近标号,为、补码表示(BH) =02H;设置数据类型,无DUP时,返回数据类型的字节数(CH) =01H;无 DUP 时,返回 E-U13CF:000013CF:0000 IEPUSHDS13CF:UUM1 B8CE13MOUAX.13CE13CF:0004 8ED8MOUDS,AX13CF:000G D001MOUflL.Ol13CF:0008 B302MOUDL,0213CF:RRA R104MOUCL.fi413CF:000C B4FFMOUAH.FF13CF:UaME B7W2MOUBH.H213CF:0010

28、B501MOUCH, 0113CF:0012 IFporDS13CFT0013 F4HLT13CF:0014 02B8FFFFADDBH.IBX+SI+FFFF13CF:0018 50PUSHAX13CF:0019 B80500MOUAX,000513CF:001C 58PUSHAX13CF:001D ODOGVArELEAAX, BPFE7A-G=13CP:0000 13CF:0013程序执行后结果如下:證瞬聖咒陈(鍔齡鄴溢魁OTeiSOThaOT13CF:0U13 F4HLT调试程序如下:STACK SEGMENT STACKDB 10()DUP(?)STACK ENDSDATA SEGM

29、ENTXI DB65H. 78HX2 DW06FFH.5200HX3 DDDATA ENDS?CODE SEGMENTASSUME CS:CODEDS:DATA.SS:STACKSTART: PUSH DSMOV AX.DATAMOV DS,AXGO:MOVAL. TYPE XIMOVBL. TYPE X2MOVCL. TYPE X3MOVAH. TYPE GOMOVBH. SIZE X2MOVCH, LENGTH X3POP DSHLTCODE ENDSEND START6画出示意图,说明下列变绘在存中如何让存放?Al DB 12H.34HA2 DB 4 Right?A3 DW 5678HA

30、4 DB 3 DUP(?)(1)设宜数据于数据段中,从数据段偏移地址0000H开始存放。变量偏移地址数据Al0000H12H0001H34HA20002H52H0003H69H0004H67H0005H68H0006H74H0007H2EHA30008H78H0009H56HA4000AH随机数OOOBH随机数OOOCH随机数调试程序如下:STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTAlDB12H. 34HA2DBRight?A3DW5678HA4DB3 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:C

31、ODEDS:DATA.SS:STACKSTART: PUSH DSMOVAX.DATAMOV DS.AXPOP DSHLTCODE ENDSEND STARTG令提示符-debugz4-6. exe13Cr:0008 20720AANDBP-SI13CF:0O0B B81C04MOWAX.041C13CF;000E 50PUSHAX13CF:000F E86244CALL447413CF:W012 83C402ADDSP也 213CF:MHlb B8EFFFHOUAX.FFFF13CF:0018 50PUSHAX13CF:0019 B80500MOUAX,000513CF:001C 50PUS

32、HAX13CF:0fl1D fiDB67ftFELFftAX.rRP4FE7ftl程序汇编后结果如下:g=13cf:0000 13c:0007BP-0000 SI-0000 DI-0000NU UP El PL HZ M PO NC13CE=00012 3J. k r4 526967Q T:68no74咱X?2E-7856io00ac00f0000C (7100T7Q丄 J UuJLU13CE:W02tJ丄 C JLZ62 44 83C402B8 nFF尸y夕5FF-50B8 BbA/UW6lb508DDO86Ho ?A13CE:0030FE 5U E84BIM83C4Mb-8BIE56DiE

33、3DIE313CE:0040Al 3A 218B163C2189-87BE228997C0228013CE:00503E 45 0?80740AFF36-560?E821FC83C40213CE:0060FF RA SAfi?5ERRF55D-C39R5S8PECR1FC9G C45E06268R47-R8fl94GFfl26R37P砺flX=13CE BX -0000 CX-0088 DX-0000 SP-0064 S-13D7 EG-13D? SS-13C? CS-13CF I P-000? bL3CF:0007 F4HLTHdl3ce ; 0000 4R islit.xU P.P-.z.

34、P. U12.编程实现,从键盘输入一个十进制数09,査表求键入数字的七段代码(共阳极LED显示器的段码), 存入DL中,并在键入数字之前,显示提示伯息Please input a numberCO).,解:STACK SEGMENT STACKDB 100DUP(?)STACK ENDSDATA SEGMENTTABLE DB 0C0H. 0F9H. 0A4H. OBOH. 99H. 92H. 82H. 0F8H. 80H, 90HBUF DB Please input one numberfO9):0DH.0AH.*$DATA ENDSCODE SEGMENTASSUME CS:CODEDS

35、:DATA.SS:STACKES:DATASTART: PUSH DSMOV AX.DATAMOV DS.AXMOV DXQFFSETBUFMOV AH.09HINT21HMOV AHINT21HANDAL.OFHMOV BX.OFFSET TABLEMOV DUALPOP DSHLTCODEENDSEND START调试结果:命令提示符 一 dobug z4-12- oxoU Warning hrrors0 Severe ErrorsD:masnfilink z4-12Microsoft Overlay Linger Uersion 3.60 Copyright dez412 exeAX=0

36、000 BX=0000 CX=00BB DX=0000 SP=0064 DS=13B? ES=13B7 SS=13C? CS=13D1 IP=0000 IEy-13dl:0000 13(11 :001Please input onoAX=0192BX=0000DS=13B7HS=13B713D1:001A F4PUSHnunboi* =CX=00BB DX=00923P=0064SS=13C7 bS-13I;x IP=MU1AHLT俪瞬他BP=0000 SI=0000 DI=0000NU UP El PL NZ; NA PE NG数字5的共阳极LED七段码为92H。15.已知:在存BUF开始的

37、单元中,存在一串数据:58, 75, 36, 42, 89.編程找出其中的最小值存入 MIN单元中,并将这个数显示在屏幕上。解:STACK SEGMENT STACKDB 100 DUR?)STACK ENDSDATA SEGMENTBUF DB 58H.75H.36H.42H.89HMIN DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE. DS:DATA. SS:STACKSTART: PUSH DSMOV AX. DATAMOV DS, AXMOV CX. 4MOV BX. OFFSET BUFMOV ALJBXSTI: INC BXCMP AL.BX|JB

38、E NEXTMOV ALJBXNEXT:LOOP STIMOV MIN, ALAND AL OFOHMOV CL.4ROR AL, CLADD AL. 30HMOV DL. ALMOV AH. 02HINT21HMOV AL. MINAND AL. OFHADD AL. 30HMOV DL. ALMOV AH. 02HINT21HPOP DSMOV AH.4CHINT21HHLTCODE ENDSEND START某班有20个同学的微机原理成绩存放在LIST开始的单元中,要求编程先从高到低的次序排列好, 再求出总分和平均值,分别存放在SUM和AVER开始的单元中。解:STACK ENDSDAT

39、A SEGMENTLIST DB 65H76H.78H54H.90H85H68H66H77H88HDB 99H. 89H, 79H. 69H.75H.85H.63H.73H.83H.93HSUM DW 0AVER DB 0BUF DB 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE.DS:DATASS:STACKSTART: PUSH DSMOV AX.DATAMOV DS.AXMOV DL OFFSET LISTMOV BX, 19LPO: MOV SL DIMOV CX.BXLP1:MOV AL. (SilINC SICMP AL. SI|JNC

40、 LP2MOV DL. (SIMOVDLMOV SIL ALLP2: LOOP LP1DEC BXJNZ LPOLP3: MOV CX. 20MOV BX. OFFSET LISTMOV SUMOXOR AX. AXLP4: ADD AL.BXDAAADC AH.OINC BXLOOP LP4MOV SUM. AXMOV BL, 20HDIV BLADD AL.ODAAMOV AVER ALPOP DSHLTCODE ENDSEND START20. 编程将存放在AL中的无符号二进制数,转化成十六进制数,再转换成ASII码并显示在屏幕上。解:程序如下:STACK SEGMENT STACKDB

41、 100DUPC?)STACK ENDSDATA SEGMENTDB 100DUPC?)DATA ENDSCODE SEGMENTASSUME CS:CODE. DS:DATA SS:STACKSTART: PUSH DSMOVAX. DATAMOVDS. AXMOVDH.ALMOVCH. 02HSTI:MOVCL, 4ROR DI L CLMOV AL. DHAND AL. OFHADD AL. 30HCMP AL.39HJBE DISPADD AL. 07HDISP: MOV DL.ALMOV AH, 02HINT 21HDEC CHJNZ STIPOP DSMOV AH. 4CHINT 21HHETCODE ENDSEND START调试程序如下:STACK SEGMENT STACKBUF DB 01111000BDB 100DUP(?)STACK ENDSDATA SEGMENTDB 100DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DSiDATA. SS:STACKSTART: PUSH DSMOVAX. DATAMOVDS, AXMOVAL. BUFMOVDH. ALMOVCH. 02HMOVCL, 4RORDH. CLMOVAL.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论