下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微型计算机原理及应用课后答案侯晓霞CH01微型计算机概述习题与思考题1. 微型计算机山哪些部件组成?各部件的主要功能就是什么? 解答:微处理器(CPU)算术逻辑部件(ALU) 累加器、寄存器 控制器系统总线:AB、CB、DBr微型计算机(功能:为CPI和其他部件之间捉供数据、地址 和控制信息的传输通道)微机系统幣徼1協谥鬱弧聲詡墻口等操作系统(0S)镰髒鬻蠶严、随机存储器(RAM)系统软件I系统实用程序:汇编.编译、编辑、调试程序等外圉设备:打印机、键盘、CRT、磁盘控制器等 可保存少量数据; 能对指令进行译码并执行规定的动作; 能和存储器、外设交换数据: 捉供整修系统所需要的定时和控制; 可
2、以响应其他部件发来的中断请示。)(注:CPU的功能一一可以进行算术和逻辑运算:2. 8 0 86/8088 CPU山哪两部分组成?它们的主要功能各就是什么?就是如 何协调工作的?解答:(总线接口部件(BIU):负责与存储器、I/O端口传送数据微处理器(CPU)执行部件(EU):负责指令的执行协调工作过程:总线接口部件与执行部件并不就是同步工作的,它们按以下流水线技术原则 来协调管理: 每当8086的指令队列中有两个空字节,或者8 0 88的指令队列中有一 个空字节时,总线接口部件就会自动把指令取到指令队列中。 每当执行部件准备执行一条指令时,它会从总线接口部件的指令队列 前部取出指令的代码,然
3、后用儿个时钟周期去执行指令。在执行指令的过程中, 如果必须访问存储器或者输入/输出设备,那么,执行部件就会请求总线接口部件 进入总线周期,完成访问内存或者输入/输出端口的操作;如果此时总线接口部件 正好处于空闲状态,那么,会立即响应执行部件的总线请求。但有时会遇到这样 的情况,执行部件请求总线接口部件访问总线时,总线接口部件正在将某个指令 字节取到指令队列中,此时总线接口部件将首先完成这个取指令的操作,然后再 去响应执行部件发出的访问总线的请求。 当指令队列已满,而且执行部件乂没有总线访问请求时,总线接口部件便 进入空闲状态。 在执行转移指令、调用指令与返回指令时,由于程序执行的顺序发生了 改
4、变,不再就是顺序执行下面一条指令,这时,指令队列中已经按顺序装入的字节 就没用了。遇到这种情况,指令队列中的原有内容将被自动消除,总线接口部件 会按转移位置往指令队列装入另一个程序段中的指令。3. 8 0 86/ 8 088 CPU中有哪些寄存器?各有什么用途?标志寄存器F有哪些标志位?各在什么情况下置位? 解答:寄存器功能数据 寄存器AX字乘法,字除法,字I/OBX査表转换CX串操作,循环次数DX字节相乘,字节相除,间接I/O变址 寄存器SI源变址寄存器,用于指令的变址寻址D I目的变址寄存器,用于指令的变址寻址指针 寄存器SP堆栈指针寄存器,与SS 起来确定堆栈在内存中的位置BP基数指针寄
5、存器,用于存放基地址,以使808 6 /8088寻址更 加灵活控制 寄存器IP控制CPU的指令执行顺序PSW用来存放808 6 /8088CPU在工作过程中的状态段寄存 器CS控制程序区DS控制数据区SS控制堆栈区ES控制数据区标志寄存器F的标志位:控制标志:OF、DF、IF、T比状态标志:SF、ZF、AF、PF、CFo标志寄存器F的各标志位置位悄况:CF:进位标志位。做加法时出现进位或做减法时出现借位,该标志位置1; 否则清0。PF:奇偶标志位。当结果的低8位中1的个数为偶数时,该标志位置I ;否 则清0oA F :半进位标志位。在加法时,当位3需向位4进位,或在减法时位3需 向位4借位时,
6、该标志位就置1 ;否则清0o该标志位通常用于对BCD 算术运算结果的调整。ZF :零标志位。运算结果各位都为0时,该标志位置I ,否则清0。SF:符号标志位。当运算结果的最高位为1时,该标志位置1,否则清0。TF:陷阱标志位(单步标志位)。当该位置1时,将使8086/80 8 8进入单步指 令工作方式。在每条指令开始执行以前,C PU总就是先测试TF位就是否 为1,如果为I ,则在本指令执行后将产生陷阱中断,从而执行陷阱中断处理 程序。该程序的首地址由内存的00004H"0 0 0 0 7H 4个单元提供。该标志 通常用于程序的调试。例如,在系统调试软件DEBUG中的T命令,就就是利
7、 用它来进行程序的单步跟踪的。IF:中断允许标志位。如果该位置1 ,则处理器可以响应可屏蔽中断,否则 就不能响应可屏蔽中断。DF:方向标志位。当该位置1时,串操作指令为自动减量指令,即从高地址到 低地址处理字符串;否则串操作指令为自动增量指令。OF:溢出标志位。在算术运算中,带符号的数的运算结果超出了 8位或16 位带符号数所能表达的范圉时,即字节运算大于十1 27或小于- I 28 时,字运算大于十3 2 7 6 7或小于一32768时,该标志位置位。4. 8086/808 8系统中存储器的逻辑地址与物理地址之间有什么关系?表示的范 围各为多少?解答:逻辑地址:段地址:偏移地址物理地址:也称
8、为绝对地址,由段基址与偏移量两部分构成。物理地址与系 统中的存储空间就是一一对应的。逻辑地址与物理地址两者之间的关系为:物理地址=段地址X16 +偏移地址 每个逻辑段的地址范围:0 0 00:0000 H F FFFH;0 0 01:OOOOH'FFFFH; ;FFFF:00 0 OH' FFFFH;共有2“个地址,但其中有许多地址 就是重叠的(体现出逻辑地址的优势,可根据需要方便地写出逻辑地址,乂不影响 其准确的物理地址,逻辑地址与物理地址的关系为多对一的关系)。物理地址的地址范围:OOOOOHFFFFFHo5. 已知当前数据段位于存储器的Al OOOH到BOFFFH范围内,
9、问DS二? 解答:A10 0 0H- AI 0 0:0000 以A100H为段地址的64K物理地址的范围就是:偏 移地址为 0 0 0 0HFFF FH,即 A 10 0 : 0 000 H "A100:F F FF H -A100 0 H + 0000HA I 000H+ OFFFFH=A1 0 00HB 0 FFFH, ADS=A100Ho6. 某程序数据段中存有两个字数据12 3 4 H与5A6BI-I,若已知DS = 5AA0H,它们 的偏移地址分别为245AH与3 2 4 5H,试画出它们在存储器中的存放情况解答:存放情况如图所示(左右两侧的写法均可):5AA0:5AA0:
10、5AA0:5AA0:5AA0:7. 80 8 6/8 0 88CPU有哪两种工作模式,它们各有什么特点?解答:为了适应各种不同的应用场合,8 086/80 8 8C PU芯片可工作在两种不同 的工作模式下,即最小模式与最大模式。所谓最小模式,就就是系统中只有一个8 086 / 8 0 88微处理器,在这种情 况下,所有的总线控制信号,都就是直接由这片8086/8 088CPU产生的,系统中 的总线控制逻辑电路被减到最少。该模式适用于规模较小的微机应用系统。最大模式就是相对于最小模式而言的,最大模式用在中、大规模的微机应用 系统中。在最大模式下,系统中至少包含两个微处理器,其中一个为主处理器,即
11、 8086/808 8 CPU,其它的微处理器称之为协处理器,它们就是协助主处理器工作 的。8. 若808 6 C PU工作于最小模式,试指出当CPU完成将AH的内容送到物理地 址为91 0 0 1H的存储单元操作时,以下哪些信号应为低电平:M/15、RD.WR> BLE/S7. DT/R o若CPU完成的就是将物理地址91000H单元的内容 送到AL中,则上述哪些信号应为低电平。若CPU为8 0 88呢?(略)9. 什么就是指令周期?什么就是总线周期?什么就是时钟周期?它们之间的关 系如何?解答:指令周期CPU执行一条指令所需要的时间称为一个指令周期(Instructio n Cycl
12、e)。总线周期每当CPU要从存储器或I/O端口存取一个字节称为一次 总线操作,相应于某个总线操作的时间即为一个总线周期(BUS Cycle) o时钟周期时钟周期就是CPU处理动作的最小时间单位,其值等于系 统时钟频率的倒数,时钟周期乂称为T状态。它们之间的关系:若干个总线周期构成一个指令周期,一个基本的总线周期 由4个T组成,我们分别称为TiT”在每个T状态下,CPU完成不同的动 作。10. 8 0 86/ 8 088 CPU有哪些基本操作?基本的读/写总线周期各包含多少个时钟周期?什么情况下需要插入Tw周期?应插入多少个Tw取决于什么因素? 解答:8 086/ 8 088CPU最小模式下的典
13、型时序有:存储器读写;输入输出;中断 响应;系统复位及总线占用操作。 一个基本的CPU总线周期一般包含四个状态E、T?、吟口,即四个时钟周 期; 在存储器与外设速度较慢时,要在口之后插入1个或儿个等待状态几; 应插入多少个几取决于READY信号的状态,CPU没有在T:状态的一开始采 样到READY信号为低电平,就会在卩与之间插入等待状态几,直到采样到 READY信号为高电平。11. 试说明8 0 86/8 0 88工作在最大与最小模式下系统基本配置的差异。808 6/8 0 88微机系统中为什么一定要有地址锁存器?需要锁存哪些信息?(略, 见书)1 2 .试简述8 0 86/8088微机系统最
14、小模式下从存器储读数据时的时序过程。(略,见书)CH028086 / 8 088 指令系统习题与思考题1. 假定 DS = 200 0 H,ES二2 1 0 0 H , S S =15 0 0 H, S I二00A 0 H, B X= 0 ! 00 H, BP二0010H,数据变量VAL的偏移地址为00 5 0H,请指出下列指令源操作数 就是什么寻址方式?源操作数在哪里?如在存储器中请写出其物理地址就是多 少?(1 )MOV AX, 0 ABH»(2)MOVoAX, 1 OOH(3 )MOV®AX,VALa(4)MOWBX, S 叮(5) M0V®AL, VAL
15、BX 。MOV CL, BX S I (7)MOV®VAL SI,BX。 MOV BP SI, 10 0解答:(l) M0V AX, 0 ABH寻址方式:立即寻址;物理地址:无(2) MOV AX, 1 0 OH寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*1 6+1 00H二2 0001-1*16+1001-1= 2 0 10 0 H(3 )MOWAX, VA L寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*1 6 + VAL=20001-I 1 6+0050H= 2 0 0 5 OHMOWBX, SI寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址:DS
16、*16+SI =20 0 0H*16+0 0 AO H=200A 0 H(5) MOV®AL, VALBX寻址方式:变址寻址;源操作数在存储器中;物理地址:DSC6+VAL +BX二2000H* 1 6 +0 0 50H+0100=2 0 1 50H(6) MOV CL, BX S I 寻址方式:基址加变址寻址;源操作数在存储器中;物理地址:DS * 16 +BX+SI二2000H* 16+ 0 100H+ 0 OAOH=2 0 1A0H(7) MOV®VAL SI,BX寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无(8 ) MOV4BP S I , 1 0 0 寻
17、址方式:立即寻址;物理地址:无2、设有关寄存器及存储单元的内容如下:D S = 2 0 00H, BX 二 0100H, AX=1 2 OOH, S I = 0 0 02H, 2010 0 H二1 2 H, 2 0101H二34H, 20 1 02H=56H, 2 010 3 =78H, 2 120 0 =2AH, 21 20 1 H =4CH, 2 1 202H=0B7H, 212 0 3H=65H o试说明下列各条指令单独执行后相关寄存器或存储单元的内容。(l)MOV AX, 1800H8(2)M0V »AX, BX(3) MOV BX, 12 OOH ®(4) MOV
18、® D X, 11 0 0 BXo(5) M OV<BX S I , AL(6) MOVAX, 1 1 00 BX SI解答:题号指令执行结果(1)MOVA X, 1 8 0 OHAX=1 8 OOH(2)M 0VAX,BXAX=O1 OOH(3)MOVBX, 1 200HBX=4C2AH(4)MOVDX, 110 0 BXDX=4C2AH(5)MOVBX SI,AL20102H= OOH(6)MOVA X , 110 0 BX SIAX=65B7H3 假定BX二0E3H,变量VALUE =79H,确定下列指令执行后的结果(操作数均为无 符号数。对3、6,写出相应标志位的状态)
19、。1 ) ADD VAL UE, BX(2)AND BX, VALUEX5)DEOBX解答:o( 3 )CM PBX, VALUE。 。(4)XOR BX, OFFH题号指令执行结果(1)ADDV A LUE, BXBX二015C H(2)ANDBX,VALUEBX=0061H(3)C MPBX, VALUEBX = 00 E 3 H (CF = Z F = 0 F 二 S F二0, AF二PF二 1)(4)X 0RBX, OFF HBX二 0 01CH(5)D E cBXBX=0 0 E2H(6)TESTBX,01HBX二0 0E3H(CF二ZF二OF二SF二AF二PF二0)g (6) T
20、ESP B X, 0 1H4 已知SS=0FFA OH, S P二OOBOH,先执行两条把8 057H与0 F79H分别进栈 的PUSH指令,再执行一条POP指令,试画出堆栈区与SP内容变化的过程示意 图。(标出存储单元的地址)解答:堆栈段SS = OFFAOH堆栈段SS = OFFAOHOOACHOOADHOOAEHOOAFHOFF AO: OOBOHOOACHOOADHOOAEHOOAFHOFF AO: OOBOHFFAABH FFAACH FFAADH FFAAEH FFAAFH FFABOH初始状态;SP= OOBOH PUSH AX: ( AX= 8O57H) SP= OOAEH堆栈
21、段SS = OFFAOH堆栈段SS = OFFAOHOOACHOOADHOOAEHOOAFHOFF AO: OOBOHOOACHOOADHOOAEHOOAFHOFF AO: OOBOH PUSH BX; ( BX= OF79H) SP= OOACH POP BX; SP= OOAEH5.已知程序段如下:ooMOVoAX, 1234HMOVCL, 4o ROI?AX,CLoDE OAXMO VCX,4MUL CX试问:(1 )每条指令执行后,AX寄存器的内容就是什么?(2)每条指令执行 后,CF,SF及ZF的值分别就是什么?(3)程序运行结束时,AX及DX寄存器的值 为多少?指令执行结果AXcF
22、SFZFMOVAX, 1234HA X=1234HXXXMOVCL, 4AX= 1 234HXXXROLAX, C LAX二2341H100D ECAXAX二2340 H100MOVCX, 4A X=23 4 0H100M ULexAX = 8D0 0 H , D X =0 00 OH0006写出实现下列计算的指令序列。(假定X、Y、Z、W、R都为字变量) 。(1) Z二W+(Z+X)。(2) Z=W-(X+6)-(R+9)(3) Z = (W*X) / (R+6)a (4) Z = (W-X)/5*Y) 2 解答:(1)ZHV+(Z+X)题号指令题号指令(1)Z = w+(Z+X)(2)Z=
23、W-(X+6)-(R+9)MOVAX, ZMOVDX,RMOVBX,XADDDX, 9MOVcx,wMOVBX,XADDB XADDBX,6ADCexMOVAX,WMOVZ,AXSUBAX, BXSUBAX, DXMOVZ, AX(3)Z = (W*X)/(R+6)(4)Z=(W-X)/5*Y) *2MO VDX, 0MOVAX,WMOVAX,WMOVBX,XMOVBX,XSUBAX,BXMULBXMOVDX, 0PUSHAXMO VCL, 5MOVAX,RD I VCLADDA X,6MOVBX,YMOVCX, AXMULBXPOPA XMOVCL,2D I VexMULCLMOVZ, AX
24、MOVZ, A XMOVZ+1,DXMOVZ+1,DX7、假定DX= 1 1001B,CL=3,CF=l,试确定下列各条指令单独执行后DX的值。 SHR o(3) S ALDX, 1。(2)SHLDL, 1DH, la o(4)SARDX, CL(5)R0 R oDX, CL。(6) ROLDL, C Lo(7)RCRoDL, la o(8)RCD>DX,CL 解答:题号指令执行结果(1)SHRDX, 1DX = 011 0 01001 1 01 110 0 (64DCH)(2)SHLD L,1D X= 1 100100 10 1 110010(C97 2H)(3)S ALDH, 1DX
25、二1 0 0 100101 0111001(92B9H)(4)S ARDX, CLDX=11U 1 0 010 0 1!0 111(F937H)(5)RORDX, CLD X二0011 1 0 01001 1011 1(3937 H)(6)ROLDL, CLDX二 1 1 00 10 0 1110 0 I101(C9CDH)(7)RCRDL, 1D X二11 0 01 0 0111 0 11100(C9DCH)(8)RCLDX, C LDX = 010 0 110 11100 1011(4DCFH)8、已知DX=12 3 4H, A X=5678H,试分析下列程序执行后DX、AX的值各就是 什
26、么?该程序完成了什么功能?。MOV CL, 4o S HL DX, CLo mov®bl,ahSHL BL, CLo SHRBL, CLOR® DL, BL解答:DX=2 3 4 5H, AX=6780H。该程序完成的功能如图所示,将DX, AX拼装成双 字后,左移四位。1234AX5678DX234OAX678ODX234| 56780DXAX9、试分析下列程序段:ADDAX, BXJNC。 L2SUBooAX, BX叮 N CL3oJMP。SH 0RTL5如果AX、BX的内容给定如下:° ° AX«> ° °BX(
27、1) 14C6H»o8ODCH(2) B5 68H a o5 4B7H问该程序在上述情况下执行后,程序转向何处?解答:(1)AX二AX+BX二 14C6H+8 0 DCH二95A 2 H;CF二 0 ;无进位,转移至 L 2 ;(2) 方法同(1),略1 0.编写一段程序,比较两个5字节的字符串OLDS与NEWS,如果OLDS字符串 不同于NEWS字符串,则执行EW_LESS,否则顺序执行。解答:编程如下,(说明:左测程序为常规编法,两个字符串在一个数据段中;右测 的程序要求OLDS在数据段中,NEWS在附加段中,利用串操作的指令就是可 行的)oLEASI,OLDS;LEA SI,
28、OLDS0 LEADI,NEWS ;LEA DI, NEWS剛 OVC X,5;MOV CX, 5«NEXT:咐 0 VAL, SI;CLDoMOVB L,D I ;REPE CMP SBgf P AL,BL;JNZ NEWLESSoJNZNEW LESSfoINCSI;JMP EX I TolNCDI ;NEW_LESS :0 oLOO PNEXT;8EX I T:咖 P EXIT«NEW_L E SS:oEXIT:I 1.若在数据段中从字节变量TABLE相应的单元开始存放了的平方值,试写出包含有XLAT指令的指令序列查找N(0l 5)的平方。(设N的值存放在 CL中)解
29、答:MOV BX, OFFSE T TABLE;LEABX,TABLEMOV CL, NMOV AL, CLXLAT12、有两个双字数据串分别存放在ASCI与ASC2中(低字放低地址),求它们 的差,结果放在A SC3中(低字放低地址)o578,400DWoo69 4,12咯?oASCl DWASC2ASC3«»DW 解答:编程如下,LEA SI, ASCI沌EADI, ASC2oLEACX,2BX, A SC3oMOVo«LC氓 EXT:oMOV別OVDX, DISB B AX,DXoMOVBX, AXoINCSIINC DIDIMNCBXAX, SIINCgI
30、NC SIalNC BX0 0LOOP NEXTCH03汇编语言程序设计习题与思考题图。oVA R1DBol 0,2VAR2oDW o5DUP(?),0oV A R3DB'HOW ARE YOU?' , 3 DUP(1,2)VAR4oDD。-1, 1,01、下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配解答:字节空间VAR1:2;VAR2: 1 2;VAR 3:19 ;VAR4:12。存储空间的分配图:DS: 0 0000A0 2 0 0000000 00000 0 0000000 000 484F00105 7204 1524 5205 94F553F24
31、0 102 01 0 20100 2 002FF FFFFFF01 000 0000 0000 0 002. 假定VAR1与VAR2为字变量,LAB为标号,试指出下列指令的错误之处。o(l)ADD RAR1, VAR 2(2)SUB®AL, VARIo(3)JMPLABCX »»(4)JNZ VARI(5) MOV 1 0 0 OH, 10 0(6)SH L AL, 4解答:(1)两个操作数中至少有一个为寄存器;(2) AL为字节,VAR1为字变量,不匹配;(3) 中不能用CX;(4) 转向地址应为标号;(5) 目的操作数的类型不确定;(6) SHL指令中,当所移
32、位数超过1时,必须用CL或CX来取代所移位数。3. 对于下面的符号定义,指出下列指令的错误。&A 1 D Bo?oA2。 DB 1 0K2EQU 1 024®(1) MOV»K1,AXo(2)MOV A 1 , AX(3) CMPaAl, A2 Q (4) K 2EQU204。8解答:(DKl为常量,不能用MOV指令赋值;(2) Al为字节,AX为字变量,不匹配;(3) A1未定义,无法做比较指令;(4) K 1重新赋值前,必须用PURGE释放。4. 数据定义语句如下所示:FIRST DB 9 OH, 5 FH, 6EH, 6 9 HSECOND DB 5 DUP
33、(?)THIRD DB 5 DUP(?)自F I RST单元开始存放的就是一个四字节的十六进制数(低位字节在前),要 求:编一段程序将这个数左移两位后存放到自SECOND开始的单元,右移两位后存 放到自THIRD开始的单元。(注意保留移出部分)解答:D ATA SEGMEN TFIRSTDB90H,5FH, 6EH,69I-ISEC0ND DB5 DU P (?)oTHIRD DB5DUP(?)DATAENDSC ODE SEGMEN TA SSUME CS:CODE,DS:DAT A START :MO V A X, DATA o MOV DS, AXLEA S I ,F I RSTooLE
34、A D I ,SECONDaMOV CX, 2CLC;左移2位oMOV AX, SI I NC S IooINC SIooMOVDX,S 叮ooPUSHDXPUSH AXoROL DX, CLAND DL,03H MOV DI+4,DL ROL AX, C LAND AL, 0 3H MOV BL , AL POP AXPOP DXSHL DX, CLSHLAX, CLORDL, BLMOVDI, AXMOVDI+2,DX;右移2位,类同左移的方法,略MOV AH,4CHINT 21HCODEENDSEND START5. (原14)在当前数据区从4 00H开始的2 56个单元中存放着一组数据
35、,试编程 序将它们顺序搬移到从A 0 0 0 H开始的顺序2 56个单元中。解答:DATA SEGMENTORG 4 OOHDAT1 DB .、; 2 56 D UP (?)ORG 0A00 0 HDAT 2 DB 、.、; 256 D U P (?)DATA ENDSSTACK SEGMENTSTACK END SCODE SEGMENTASSUME DS: DA T A, CS: CODE, SS: ST A C K, E S : DATASTART : MOV AX, DATAMOV DS,AX:CH3-14LEA SI,DAT1LEA DI, DAT2MOV CX, 1 2 8A GA
36、IN: MOV AL, SIMO V D I ,ALINC S IINC D ILOOP AGA I N;CH3-15,将两个数据块逐个单元进行比较,若有错BL二0 0 H,否则BL= F FHLEA S I , D ATILEA DI, DAT 2MOV CX, 12 8NEXT:MOV AL, SIMOV BL, DICMP AL, BLJNZ ERRORINC SII NC DILOOP NEXToj MP EX I TERR OR:咐OV AL, OFFHoMOV SI, AL;返回DOSEX I T:別OV AH, 4CHMNT 21HCODE ENDSEN DSTARTEND7、在
37、上题中,如果发现有错时,要求在ERR单元中存放出错的数据个数,则程序 该如何修改?解答:DATA SEGMENTBUFF DB 1000H DUP(?)ERR DW ?DATA ENDSCODE SE GMENTASSUME CS: CODE, DS:DATAS TART:MOV AX, DAT AMOV DS, AX;将55H依次放入BUFF开始的4K个单元oLEA SI, BUFF®M0V CX, 10 OOH咐OVAL, 5 5HNTXT:MOV S I , ALoINC SILOOP NEXT;取出与55H比较LEA DI, BUFFLEA SI, ERRMOV DX, 0
38、000H®M0V CX, 10 0 OHNEXT1:MOV AL, DIINC D IIMP A L, 5 5HJZNEXT2;若相同,则比较下一个oINC DX;否则将放出错个数的DX加1NEXT2:LOOP NEXT1oMOV SI,DXEXIT:MOV AH, 4CHINT 21HCODE ENDSEND STARTEND8、试编写程序段,完成将数据区从010 0 H开始的一串字节数据逐个从FOH端 口输岀,已知数据串以OAH为结束符。(略)9、(原2 4)内存中以F IRS T与SECOND开始的单元中分别存放着两个4位用压 缩BCD码表示的十进制数,低位在前。编程序求这两个
39、数的与,仍用压缩 BCD码表示,并存到以THIRD开始的单元。解答:DATA SEGMENTF I R S T DW 3412HSECOND DW 7 8 56HTHIRD DB ?, ?, ?DATA ENDSSTACK SEGMENTSTACK ENDSCODE SEGMENTASSUME DS:DATA, CS:CO DE, SS: S T A CK, ES:DATASTART: MOV AX, D ATAMOV DS, AXLEA SI, F IRSTLEA DI, SECONDLEA BX, THIRDMOV CX, 2CLCAGAIN: MOV AL,BYTE PTRSIMOV D
40、L, B Y T E PTRD叮ADC AL, DLDA AMOV BYTE PTRBX,ALINC SIINC DIINC BXLOOP A GAINJC AAMOV BYTE PTRBX,0JMP EXITAA:MOV BYTE PTRBX , 1EX I T: MOV AX,4C00HINT 21HCODE ENDSEND STARTI 0.(原2 7)设字变量单元A、B、C存放有三个数,若三个数都不为零,则求三 个数的与,存放在D中;若有一个为零,则将其余两个也清零,试编写程序。解答:DATA SEGMENTA DB ?B DB ?C DB ?D DW ?DATA ENDSST ACK
41、 SEGMENTSTACK ENDSCODE SEGMENTASSUME DS:DATA, C S:CO D E, SS:STACK, ES:DATASTART : MOV AX, DATAMOV DS, A XoLEA SI, AoLE A DI, DMOV AL, SIOP AL, 00JZ ZEROoADC D X, ALLEA SI,BMOV AL, S I CM P AL, 00oJZ ZEROADC DX, AL®LEA SI,C咐OV AL, SICMP AL, 00oJZ ZEROAD C DX,ALMOV DI,DXoJMP EXITZERO :MOV AL, 0咐
42、OVA, AL咐OV B, ALMOV C,ALEXIT : MOV AX, 4C00HINT 2 1HCOD E END SEND ST ART1 I . (16)试编程序,统计由TABLE开始的1 28个单元中所存放的字符“A”的 个数,并将结果存放在DX中。解答:DATA SEGMEN TTABLE DB X 1 , X2,、X128DATA ENDSSTACK SEGMENTSTACK ENDSCODE SEGMENTASSUME DS: DATA, C S : CODE, S S:STACK, ES:DATASTART: MOV AX, DATAMOV DS,AXLEA SI,TAB
43、LEMOV DX, 0MOV C X, 128AGA I N: MOV AL, SICMP AL, z A'J NZ NEXTI NC DXNEX T : I NC S ILOOP A GA I NMOV AX, 4 C 0 OHINT 2 ll-ICODE ENDSEND S TART12、试编制一个汇编语言程序,求出首地址为DATA的10 0 0个字数组中的最小 偶数,并把它存放于MIN单元中。(方法:利用书上排序的例题做相应的修改 即可,略)13、在上题中,如果要求同时找出最大与最小的偶数,并把它们分别存放于MAX 与MI N单元中,试完成程序。解答:略(方法同第】2题)。14.
44、 (28)在DATA字数组中存放有100H个I 6位补码数,试编写一程序求它们的 平均值,放在AX中,并求出数组中有多少个数小于平均值,将结果存于BX 中。(略)15. (17)编写一个子程序,对AL中的数据进行偶校验,并将经过校验的结果放回 AL中。解答:DATA SEGMENTCOUNT EQU 7DA TA ENDSSTACK SEGMEN TSTACK ENDSCODE SEGMENTA SSUME DS: DAT A,CS : CODE, S S : ST A CK,ES:DATASTART : MOV AX, DATAMOV DS, AXPUSH AXMOV DX,0MOV C X
45、, COUNTA GAIN: RCR AL, 1JNC LINC DXL:LOOP AGAINPOP AXTEST DX, 0 IJZ EXITOR AL, 80EXIT:MOV AX,4COO HI NT 21H:ANOTHER MET HORDJP EX I TOR A L, 80HEX I T: MOV AX,4C00HINT 2 1 HCODE ENDSEND STARTI 6、(18)利用上题的予程序,对DATA开始的2 56个单元的数据加上偶校验,试编程序。解答:DATA SEGME NTDAT DB .、. ;25 6 DUP (?)RESULT DB .、;2 5 6 DUP
46、(?)NUM EQU 256COUNT EQU 7DATA ENDSSTACK SEGMENTSTACK ENDSCODE S E GMENTA SSUME DS: DAT A, CS:CODE, SS : STACK, E S: DATASTART: MOV AX, DATAMOV DS, AXLEA S I , DATLEA DI, R E SULTMOV CX,NUMNEXT:MOV AL, S I CALL SUB1MOV DI ,AL;MOV SI,ALINC SII NC DILOOP NEXTMOV AX,4C00HI NT 21HSUB 1 P ROCPUSH A XMOV D
47、X, 0MOV CX, COUNTAGAIN: RCR AL, 1JNC LINC DXL:LOOP A GAINPOP AXTEST DX, 01J Z QUITOR AL, 8 0 HQU I T: RETSUB 1 EN DPCODE ENDSEND START1 7、( 1 9)试编写程序实现将键盘输入的小写字母转换成大写字母并输出。 解答:DATA SEGMENTMESS DB 'THE INPUT I S N OT CORRECT.' , ODH, OAH, ' $'DATA ENDSSTACK SEGMEN TS TACK ENDSCODE SEG
48、MENTASSUME DS:D ATA,CS:C0D E, SS: ST A CK, ES:DATASTAR T : MOV AX, D A TAMOV DS, AXNEXT:MOV AH, 0 I HINT 21HCMP AL, ' Q'JZ EXITCMP AL,' a 'JB ERRORCMP AL,'z,JA ER RORSUB AL,20HMOV A H,02HMOV DL, A LINT 21I-IJ MP NEXTERROR: MOV AH, 0 9HLEA DX,MESSINT 2 1 HJMP NEXTE XIT: MOV AX, 4C
49、 0 OHINT 21HCODE E NDSEND STAR T18、从键盘接收2 0个字符,按键入顺序查找最大的字符,并显示输出。解答:DATA SEGMENTDAT DB 20 DUP(?)DATA ENDSSTACK SEGMENTSTACK E NDSC ODE SEGMENTASSUME DS: D A T A, CS: COD E, SS: STACK, ES: DATASTART:MOV AX, DATAMOV DS, AX;从键盘接收20个字符,并送DAT中保存LEA SI,D ATMOV CX, 2 0N E XT: lOV AH,01HINT2 1 HMOVSI,ALINC
50、SIqLOOPNEXT;比较20个字符中的最大字符,并放入A L中MOV CX, 1 9LEA SI, DAT咐OV AL,SIINC SINEXT1:OP AL, SIJ AE LLMOV AL, SILL : INC S ILOOP NEXT 1;将最大的字符的ASC I I码由AL送D L显示DL, ALAH, 2 HNT 21H;返回DOSMOV AX, 4C0 0 HIN T 21HCODE ENDSEND START19、(29)编写汇编程序,接收从键盘输入的I 0个数,输入回车符表示结束,然 后将这些数加密后存于BUFF缓冲区中。加密表为:输入数字:0, I , 2,3, 4,
51、5, 6, 7, 8, 9;密码数字:7, 5, 9, 1,3, 6, 8, 0, 2,4解答:DATA SEGMENTBUFF DB 10 DUP(?)TABLE DB 7, 5,9, 1, 3, 6, & 0, 2 , 4DATA ENDSS TACK SEGMENTSTACK ENDSC ODE SEGMENTASSUME D S :DA T A, CS: CODE, SS: S TACK, E S :DATASTART : oMOV AX, DAT AMOV DS, AX9LEA DI, B UFFNEXT:MOV AH, 0 1 HoINT 21H;从键盘上接收单个字符oCMP AL, OAH;与OA H比,判就是否要结束oJZ EXITSUB AL,30H;否则,将09的A S CII码转换为十进制数oL E A BX, TAB L EoXLAT;用查表指令进行加密MOV D I ,ALo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 动力设备维护保养要求
- 产后抑郁的家属参与式干预模式
- 冬季大体积混凝土施工方案的降温管设计
- 创新能力培养与提高练习与答案
- 安徽省蚌埠市2024-2025学年高一生物下学期7月期末考试pdf
- 论文的一般常用写作格式
- 交通大学本科生毕业设计(论文)撰写规范
- 主动脉夹层的分型与腔内隔绝术适应症
- 浅析煤炭企业物流成本管理
- 大学汉语言文学专业论文
- 影像三基试题及答案
- BB/T 0071-2017包装玻璃容器卡式瓶口尺寸
- 农村宅基地永久转让合同
- 超高层建筑的火灾特点
- DB44∕T 1455-2014 气凝胶绝热材料
- 统编版二年级语文上册课文2 写话 :自己喜欢的玩具课件(27页)
- 教育部十二五规划子课题申报
- Q∕GDW 10827-2020 三相智能电能表技术规范
- 船用离心通风机使用维护说明书doc
- 浅谈华联超市人力资源管理现状及对策
- 防火卷帘施工组织方案
评论
0/150
提交评论