微型计算机原理及应用课后答案侯晓霞_第1页
微型计算机原理及应用课后答案侯晓霞_第2页
微型计算机原理及应用课后答案侯晓霞_第3页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、C1 微型计算机概述习题与思考题1微型计算机由哪些部件组成?各部件得主要功能就是什么 解答:微处理器(CPU)算术逻辑部件 (ALU ) 累加器、寄存器控制器系统总线: AB、 CB、DB微机系统微型计算机(功能:为 CPU和其他部件之间提供数据、地址和控制信息的传输通道)输入 / 输出( I/O )接口:串 / 并行接口等 (功能:使外部设备和微型机相连) 存储器:只读存储器( ROM)、随机存储器( RAM) (功能:用来存储信息)操作系统( OS)系统软件系统实用程序:汇编、编译、编辑、调试程序等外围设备:打印机、键盘、 CRT、磁盘控制器等(注: CPU的功能可以进行算术和逻辑运算;可

2、保存少量数据; 能对指令进行译码并执行规定的动作; 能和存储器、外设交换数据; 提供整修系统所需要的定时和控制; 可以响应其他部件发来的中断请示。)2 086/80 8 PU 由哪两部分组成?它们得主要功能各就是什么?就是如 何协调工作得?解答:微处理器(CPU)总线接口部件 (BIU ):负责与存储器、 I/O 端口传送数据执行部件( EU):负责指令的执行协调工作过程 : 总线接口部件与执行部件并不就是同步工作得,它们按以下流水线技术原 则来协调管理 : 每当 8086 得指令队列中有两个空字节 , 或者 80 得指令队列中有一 个空字节时 , 总线接口部件就会自动把指令取到指令队列中。

3、每当执行部件准备执行一条指令时,它会从总线接口部件得指令队列前 部取出指令得代码 , 然后用几个时钟周期去执行指令。在执行指令得过程中,如 果必须访问存储器或者输入输出设备,那么 , 执行部件就会请求总线接口部件 进入总线周期,完成访问内存或者输入输出端口得操作 ; 如果此时总线接口部 件正好处于空闲状态 , 那么,会立即响应执行部件得总线请求。但有时会遇到这 样得情况,执行部件请求总线接口部件访问总线时,总线接口部件正在将某个 指令字节取到指令队列中,此时总线接口部件将首先完成这个取指令得操作,然后再去响应执行部件发出得访问总线得请求 . 当指令队列已满,而且执行部件又没有总线访问请求时,总

4、线接口部件 便进入空闲状态。 在执行转移指令、调用指令与返回指令时,由于程序执行得顺序发生 了改变,不再就是顺序执行下面一条指令,这时,指令队列中已经按顺序装入 得字节就没用了。遇到这种情况 , 指令队列中得原有内容将被自动消除,总线接 口部件会按转移位置往指令队列装入另一个程序段中得指令 .3808/8088 CPU 中有哪些寄存器 ?各有什么用途 ?标志寄存器 F 有哪些标志位?各在什么情况下置位?解答:寄存器功能数据 寄存器AX字乘法,字除法,字 /OB查表转换C串操作, 循环次数D字节相乘 , 字节相除,间接 /O变址 寄存器I源变址寄存器,用于指令得变址寻址I目得变址寄存器 , 用于

5、指令得变址寻址指针 寄存器SP堆栈指针寄存器,与一起来确定堆栈在内存中得位置BP基数指针寄存器,用于存放基地址,以使 80 /80 8 寻 址更加灵活控制 寄存器I控制 CPU得指令执行顺序PSW用来存放 0 6/8088CP在工作过程中得状态段寄存 器C控制程序区S控制数据区SS控制堆栈区ES控制数据区标志寄存器 F 得标志位 : 控制标志 :OF、 DF、IF 、T;状态标志 : F、 F、 AF、PF、 F.标志寄存器 F 得各标志位置位情况:· CF:进位标志位。做加法时出现进位或做减法时出现借位,该标志位置 1;否则清 0.·PF:奇偶标志位。当结果得低 8位中

6、l 得个数为偶数时,该标志位置; 否则清 0。· F:半进位标志位。在加法时,当位 3 需向位 4 进位, 或在减法时位 3 需 向位 4 借位时,该标志位就置 1;否则清 0. 该标志位通常用于对 BD 算术运算结果得调整 .·ZF:零标志位。运算结果各位都为 0 时,该标志位置 1,否则清 0。 · F:符号标志位。当运算结果得最高位为 1时,该标志位置 1,否则清 . · : 陷阱标志位(单步标志位 ) 。当该位置时 , 将使 8086/8 8进入单 步指令工作方式。在每条指令开始执行以前 ,CP总就是先测试 TF 位就是否为 1, 如果为 1,

7、则在本指令执行后将产生陷阱中断,从而执行陷阱中断处 理程序。该程序得首地址由内存得 0000H0007H 4 个单元提供。该标 志通常用于程序得调试。例如,在系统调试软件DBU中得 T 命令,就就是利用它来进行程序得单步跟踪得。·F: 中断允许标志位。如果该位置 1,则处理器可以响应可屏蔽中断,否 则就不能响应可屏蔽中断。· : 方向标志位。当该位置 1 时, 串操作指令为自动减量指令,即从高地 址到低地址处理字符串;否则串操作指令为自动增量指令。·OF:溢出标志位 . 在算术运算中,带符号得数得运算结果超出了8 位或位带符号数所能表达得范围时,即字节运算大于十

8、7 或小于 1 8时,字运算大于十 277或小于3268时,该标志位置位 .4886/80 8 系统中存储器得逻辑地址与物理地址之间有什么关系?表示得 范围各为多少?解答:逻辑地址: 段地址:偏移地址 物理地址:也称为绝对地址,由段基址与偏移量两部分构成。物理地址与 系统中得存储空间就是一一对应得 .逻辑地址与物理地址两者之间得关系为:物理地址=段地址× 6偏移地址每个逻辑段得地址范围 :000:000FFF; 001:0000HFF FH;FFF:0000HFFF;共有 232个地址, 但其中有许多地址就是重叠得 ( 体现出逻辑地址得优势,可根据需要方便地写出逻辑地址,又不影响其准

9、确得 物理地址 , 逻辑地址与物理地址得关系为多对一得关系 )。物理地址得地址范围: 00 FFFFH。 5已知当前数据段位于存储器得 A1 H到BF范围内 ,问DS=? 解答: 0H 00:0000以 A100H为段地址得 K 物理地址得范围就是:偏移地址为 0000FFFH,即 A0:00HA1:FF 000 +00 HA100H+0FFF = 100HB0FFFH, DSA100H. 6某程序数据段中存有两个字数据 1234H与 5A6B, 若已知 D=5A H,它们 得偏移地址分别为 24 A与 325H,试画出它们在存储器中得存放情况 解答: 存放情况如图所示 ( 左右两侧得写法均可

10、) :5AA0:5AA0:5AA0:5AA0:5AA0:0000H245AH245BH3245H3246H78086/808PU有哪两种工作模式,它们各有什么特点? 解答:为了适应各种不同得应用场合 ,8 8/ 088CP芯片可工作在两种不同 得工作模式下,即最小模式与最大模式。所谓最小模式,就就是系统中只有一个808/08微处理器 ,在这种情况下, 所有得总线控制信号 , 都就是直接由这片 086/8088CPU产生得,系统中得 总线控制逻辑电路被减到最少。该模式适用于规模较小得微机应用系统。最大模式就是相对于最小模式而言得,最大模式用在中、大规模得微机应 用系统中。在最大模式下,系统中至少

11、包含两个微处理器,其中一个为主处理 器, 即 886/8088CPU,其它得微处理器称之为协处理器,它们就是协助主处理 器工作得 .8若 086CPU工作于最小模式 , 试指出当 CPU完成将 AH得内容送到物理地址为 91001得存储单元操作时 , 以下哪些信号应为低电平: /、/ 、DT/。若 P完成得就是将物理地址 9100单元得内容送到 L 中, 则上 述哪些信号应为低电平。若 CU为 88 呢?(略) 9什么就是指令周期?什么就是总线周期?什么就是时钟周期?它们之间得关 系如何?解答:指令周期 -CPU 执行一条指令所需要得时间称为一个指令周期( n truc ion C ce) 。

12、总线周期 每当 C要从存储器或 I/ 端口存取一个字节称为一次总线操作 ,相应于某个总线操作得时间即为一个总线周期( BS Cycle )。时钟周期时钟周期就是 CP处理动作得最小时间单位,其值等 于系统时钟频率得倒数,时钟周期又称为 T 状态。它们之间得关系:若干个总线周期构成一个指令周期,一个基本得总线周 期由个 T 组成,我们分别称为 T1T, 在每个 T 状态下,CP完成不同得动 作。10 8086/8088 PU 有哪些基本操作?基本得读写总线周期各包含多少个时钟周期?什么情况下需要插入 T周期?应插入多少个 T取决于什么因素?解答: 8086 8 88最小模式下得典型时序有 : 存

13、储器读写;输入输 出;中断响应 ; 系统复位及总线占用操作。一个基本得 CP总线周期一般包含四个状态 , 即四个时钟周期; 在存储器与外设速度较慢时,要在之后插入个或几个等待状态; 应插入多少个取决于 AD信号得状态, CPU没有在状态得一开始采样 到 EAD信号为低电平,就会在与之间插入等待状态 , 直到采样到 RADY信号 为高电平 .11 试说明 80 8088 工作在最大与最小模式下系统基本配置得差异。 8086888 微机系统中为什么一定要有地址锁存器?需要锁存哪些信息? (略, 见书)1。试简述 8086/ 08微机系统最小模式下从存器储读数据时得时序过程.(略,见书)CH02 8

14、0 6808指令系统习题与思考题1假定 DS=200H,ES=21 0, SS=1500H, SI= 0H,BX=0100H,B=0 H,数据变量 VA得偏移地址为 0 0H,请指出下列指令源操作数就是 什么寻址方式?源操作数在哪里 ?如在存储器中请写出其物理地址就是多少?(1 ) O AX,0AB ?(2 ) MOAX,1 0H(3)MO AX,VAL?(?4 )MO?VB,SI (5)MO?VAL,VB(6)MOV?L, BXSI (7)MO VALSI , BX?(8)MO?BPS ,00解答:(1)MO?VX,0AB 寻址方式:立即寻址;物理地址:无() MO?VA, 1 0H 寻址方

15、式:直接寻址 ;源操作数在存储器中;物理地址: S 1 =2000H*16+100H2100H( 3)MOV AX,V 寻址方式 : 直接寻址;源操作数在存储器中;物理地址: D 16+V =20016050H0050H( ) OV?BX, SI 寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址: DS* 6+I 200H1 000H=200A0H(5)MOV?AL, LBX 寻址方式:变址寻址;源操作数在存储器中;物理地址:S 6VL+BX=000H6+00H+0100=210H(6)MV CL, XSI寻址方式 : 基址加变址寻址;源操作数在存储器中;物理地址:DS16+BX+SI0

16、00H6+0H00H21A0H(7 )MV A SI,BX 寻址方式:寄存器寻址;源操作数在寄存器中 ;物理地址 :无(8 )BS ,100寻址方式 :立即寻址;物理地址 : 无 。设有关寄存器及存储单元得内容如下 :D= 000,BX=1 H,A 1 0H,SI=0002H,2 10H=1H, 0101H=34H, 1 2H 56H, 01 3=78H,21200 =2H,212 1H=4CH, 202H=0B7H,2 03 5H。 试说明下列各条指令单独执行后相关寄存器或存储单元得内容。(1)V?AX,100H?(?) OV? AX,X?(3)OV B, 1200H?(4) V? X,10

17、BX(5 )MOV X , L( 6) OV?AX,100BX SI解答:题号指令执 行 结 果(1)MOAX,180HAX=80H()OX,BXA 0100H()MX, 20HBX=4CAH()MODX,110BXD=4C2AH()MOVBX ,AL 00H 0H( )MOAX,11 0 BX SIAX=5BH3. 假定 BX0E3H,变量 ALUE=79H确, 定下列指令执行后得结果(操作数均为无符号数。对 3、6,写出相应标志位得状态 ).(1)ADD?VAU, (2) ND?BX,VALUE() CMP BX,VLE?(4)XOR ,0FFH?(5 )DE?B(6)TE?X,01H解答

18、:题号指令执行结果()ADDVALUE,BXB 015C()ANX,VLEB=001()CBX,VALUEBX0E3H(CF=F=O=S=0,AF=PF1)(4)OX, F HBX=01C(5)DECBBX=00H(6)TETBX,0HBX00E3H(F=ZFOF=F=A=P=0)4已知 =0FFA0H,SP=00B0, 先执行两条把 07与 F79H 分别进栈得PSH指令,再执行一条 OP指令, 试画出堆栈区与 SP内容变化得过程示意 图.( 标出存储单元得地址 )PUSHAX;(AX 8057H)SP00AEH解答:堆栈段 SS0FFA0H堆栈段 SS 0FFA0H00ACH00ADH00

19、AEH00AFH0FFA0 : 00B0H00ACH00ADH00AEH00AFH0FFA0 : 00B0HFFAABHFFAABH00ACHFFAACH00ACHFFAACH00ADHFFAADH00ADHFFAADH00AEHFFAAEH00AEH57HFFAAEH00AFHFFAAFH00AFH80HFFAAFH0FFA0 : 00B0HXFFAB0H0FFA0 : 00B0HXFFAB0H堆栈段 SS0FFA0H堆栈段 SS 0FFA0H初始状态; SP00B0HPOPBX;SP00AEHPUSHBX;(BX0F79H)SP00ACH5。已知程序段如下 : ?O AX,1 3 H ?M

20、O?L,4RO AX, CLDE?X V?C,4 ML CX试问: (1) 每条指令执行后 ,AX 寄存器得内容就是什么 ?(2 )每条指令执行后, CF,F 及得值分别就是什么 ?(3) 程序运行结束时, AX及X 寄存器得值 为多少?指令执 行 结 果ACFFZFMOA, 1234A=24H×××OVC,AX1234H×××ROLX,LAX=34110EAAX2340H00MOCX,4A230H100LCX D0 H, DX=0000006.写出实现下列计算得指令序列。 (假定 X、Z、W、R都为字变量) ?() =W+(Z+)

21、?() Z=-(X+6 ) (R+)(3 )Z=( X)/ (6)?()Z=(WX)/5 Y)2解答: ( ) Z=W+(Z+X)题号指令题号指令(1)Z=W+(+X)(2)=W-(X+6)-(R+)MVAX,MOVDX,ROBX,XADD,9MOVCX,WMVBX,XADBXADDBX,6DCCXMVAX,WMOVZ,AXUBAX,XSUB, DXMVZ,X(3)Z=(W )/ (R)() (W-X) 5*Y) *2MDX,0MOVA,WMVA,WMVX,OBX,XUBAX,BMUBOVDX,0PUSHMOCL,MOVAX,RDIVCLADDA,6OVBX,YMOVC,MULBXOXOVCL

22、,DIVCMULCLMOV,AXMOVZ,AXMVZ+1,DXMVZ1,D。假定 DX=1 00B,CL= , F=1,试确定下列各条指令单独执行后DX 得值。(1) HR?DX,1?(2)SHLDL, 1?( )SLH,?(4)SAR X,(5 )OR D,CL? ?(6)ROL?DL,CL( )R R?, 1?( 8) R L?D ,CL解答:题号指令执行结果(1)SHRDX,1DX=0110 010 1DCH) 1 100(6(2)SHLD,1DX=11 0 1001972H)0111 0010( (3)SALD,1 X 1001 00109H)1011 1001(92 (4)SARX,

23、CLDX=11 1 0137)011 01 1(F(5)RORDX,CLD=011 1 017H)0011 0 11( 39()ROLDL,CLD 1100 1001DH)1100 1101(C9(7)RCRDL,1DX=1100 10 100(C9DCH)1101 1 (8)RCDX,CLD =000 1 ( D FH) 1100 10 8。已知 X=24H,A=578H,试分析下列程序执行后 DX、AX 得值各就是 什么?该程序完成了什么功能 ? OCL,4SH DX,CLM V?BL, AH? SHL?BL,CLSHR?BL,C? OR? DL ,BL解答: X25H,AX=6780H。

24、该程序完成得功能如图所示,将 DX,A拼装成 双字后,左移四位。1234AX5678DX2340DX6780AX23456780DX AX9. 试分析下列程序段:AD AX,BXJNC L2?S B X,X N ?L3?JMPSHORTL如果 AX、BX得内容给定如下:? X? ? B? DH(1 )146H )B568 ? 4BH问该程序在上述情况下执行后,程序转向何处?解答:(1)AX=A +BX14C +80DC =95 H; C =0;无进位,转移至;(2) 方法同(1 ), 略0。编写一段程序 ,比较两个 5 字节得字符串 ODS与 NEWS如, 果 ODS字符 串不同于 EW字符串

25、,则执行 NEW_LESS否,则顺序执行。解答:编程如下, (说明:左测程序为常规编法,两个字符串在一个数据段中 ;右 EWS在附加段中,利用串操作得指令就测得程序要求 LDS在数据段中 是可行得)LA S , OLDS;? EA DI,N S; ? MOV X, 5;NEXT: MV AL ,SI ;?MV B , D;? ?CPAL, BL;JNZ NEW_LES;S?I?N ;INC DI;LOOP ET;? EXLEA SI ,OLS EA DI , N WSMOVCX,CLDR PE CMPSBJNZ NEW_ESJP I N W_L:?J?MP EXI ?NW_L: ? ?EI :

26、?1若在数据段中从字节变量 ABLE相应得单元开始存放了 5 得平方值 , 试写出包含有 XLA指令得指令序列查找 N(01)得平方。 (设 N得值存 放在L 中)解答:MO BX ,OFFSET ABLE;LEA BX,TA LEMOV L,NOV A, CLXLA .有两个双字数据串分别存放在 AC1与 AS2中(低字放低地址),求它们 得差,结果放在 ASC3中( 低字放低地址)。?SC1 DW 57 ,40 ASC? W? 694,12?ASC3 DW ?? ,?解答: 编程如下,? EA I, S1?L A D , SCLEA BX,AC3?M X, ?CL?NEXT:? OV X,

27、I ?V DX,DI SB AX ,D? O BX,?CSI?IN SI?I?CDI?INCDI?I C BX? INC BX?LOOP NET H 3 汇编语言程序设计习题与思考题1下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间得分配图.VAR D ?10,22? DW ?5 DUP(?) ,0?VAR?D?OW AR O?',', D (1,2 )V 4D ?1,1,0解答:字节空间 - V :2 ; AR2:12;VAR3:19;VA4:12 。 存储空间得分配图:DS: 00 A 2 000 00 00 00 000000000 00 4 4F01057

28、2 4152 059 F55 3F24010201 0 0020 0 FFFF FF0100 00 000002假定 V与 VR2 为字变量 ,L 为标号,试指出下列指令得错误之 处。(1)ADDV ,VR2?()S?AL,VA1?(3 )JMPLBCX?(4) NZ?VA( ) MOV 00H,1 0() SL AL, 4解答: (1) 两个操作数中至少有一个为寄存器;(2)AL 为字节, VAR1为字变量,不匹配 ;(3) 中不能用 CX; ()转向地址应为标号; (5) 目得操作数得类型不确定 ;(6 )SH指令中,当所移位数超过 1 时,必须用 C或 CX来取代所移位 数. 对于下面得

29、符号定义,指出下列指令得错误 .A1?B ?A2 DB 10?K1? EQ 102()MV? K1, X?(2)MV?A1,AX?(3 )CMP A1,?(? )K1?EU2048?解答:(1)K1为常量,不能用 OV指令赋值 ;( )A1为字节, X为字变量,不匹配;(3 )A未定义 , 无法做比较指令;(4)K重新赋值前 , 必须用 UGE释放。4。数据定义语句如下所示:FIRS B9H,5F,6E, 9HSECOND DB 5 U(?)TIRD D DUP(?)自 FIRST 单元开始存放得就是一个四字节得十六进制数 (低位字节在前 ) ,要 求:编一段程序将这个数左移两位后存放到自 S

30、E ND开始得单元,右移两位后 存放到自 THIRD开始得单元。(注意保留移出部分 ) 解答:?DATA SEMENFIRST B 9 H,5H,6H,69H SECOND DB 5 DUP (?)? THIRD DB5 DUP(?)DATA NSOE SEGMENT?A UME CS:COD,E DS: TATART:M X, ATA?MV D, ALA S ,FI S? ?LEA DI ,SE ND?OV , LC;左移 2 位O AX, SI ?INC SI? NC I?M V D ,S ?PUSH DXPUSH AX?R?L DX,CLAN DL , 03HMV D +4 ,DLR L

31、 AX, LAND AL, HMOV BL , ALPOPAPOP DXSHL DX,C SH AX,CL OR L,B MO I ,A MOV DI+2 ,DX ;右移 2 位,类同左移得方法 , 略MV A ,4CH T 21 CODE E DS ND START5(原 14)在当前数据区从 400H 开始得 256 个单元中存放着一组数据 序将它们顺序搬移到从 A0开始得顺序 5个单元中 .解答: DT SEGMENTR 4 HD1 B 、;56 DU (? )O A00H DA2 DB 、;56 DUP ( ?) DAT NDS STCK SEM NT SCK ENDS CODE SE

32、ME T SUME S:DATA,C:C, S:TACK,S:DAT SAR: MV AX,DATAMO DS,AX ;CH3-14A SI ,DATEA DI, AT2 V X,128 AAIN: OV AL,SIMOV DI, INC IINC D LO AGAIN ;CH3-15,将两个数据块逐个单元进行比较 , 若有错 =0,否则 L A SI , AT1 EA I,DAT2O C, 12 NEXT: MV AL,I M V BL, IC P AL,BJNZ E ORIN S N I, 试编程BFFLOOP NE TMOV L, FJMP XITEROR: MOV BL,0HEXIT:

33、 V X,4C 0NT 1HCDE ENDSEN RT。试编程序将当前数据区从 BUFF开始得 4个单元中均写入 55H,并逐个单 元读出比较 , 瞧写入得与读出得就是否一致。若全对,则将 ERR单元置 0; 如果有错 , 则将 ER 单元置 FFH。解答:DATA SEGENTBUF D 1 00H P(?)ER D ?DTA NDS ODE SEGENTSUME CS: DE,DS:DATASTART:M X, ATAMOV DS, X;将 55H依次放入 BFF开始得 K个单元 EA SI,BUFF OV CX,1000HOV A, 5NTXT:V I , INC SI?LOOP EXT

34、; 取出与 55H 比较 , 全对则 ER=0,否则 ERR=FLEA D,B FFLE S ,ERR?OV C, 100HNEX1:?MOV AL ,DI? C DI?CMP AL, 5HJNZ RROR若; 有一个不同,即置 ERRF O N T1?MOV L,00HMOV S , AL;全比较完无错 ,则置 ERR=?0JMP EXTEROR:MOV AL, FM SI , AL; 返回 DOSEXIT:?MV ,4CHIN HCODEE SENDSTARTENDRR单元中存放出错得数据个数 , 则程。在上题中 , 如果发现有错时,要求在 序该如何修改?解答:DAT EGENTBUF D

35、 0H UP(?)ER DW ?DAA E DSCODE SEGMENTASUE S: D, D:DTSART:MOV A, DTA?O D , AX; 将 5H依次放入 BUFF开始得 K个单元 ?LEA SI,BUFMOV CX,1 0H? A,5 HNTXT: O SI,AL?I I?LOOP NEXT;取出与 55H比较LE D ,BUF?LEA SI ,ERR ?OV X, 000H OV CX,1000NEXT1:MO A , DI?INC DI ?CP L,5 HJZ NEXT ;若相同,则比较下一个?INC DX; 否则将放出错个数得 D加 1 EXT2:? OOP NXT1

36、?MOV I , DXXI :?MV AH,4C?I T 2 HCOE EN S NSTARTEND。试编写程序段 ,完成将数据区从 0100H 开始得一串字节数据逐个从 F0端 口输出 , 已知数据串以 0H为结束符。(略).( 原24)内存中以 FIRT与 SOND开始得单元中分别存放着两个位用 压缩 BCD码表示得十进制数 , 低位在前。编程序求这两个数得与,仍用压缩 BCD码表示 , 并存到以 TIRD开始得单元。解答: AT SEGMNTFIRST DW 3412HSECOND DW 756THIRD DB ?, ?, ?DATA ENDSSTACK EMETSACK EN SCOD

37、E SEGMA U E DS:DATA,S:ODE,SS:TACK,:DAASTAR: MOV A,DATMOV S, AXLA I,FIR TL DI , ECONDEA B,THIRMOV CX, 2C CAGAI: OV AL, BYT PTSIMOV , T PTR DADC AL, DLDAAMOV BT PT BX, ALIN SIN DII BXLP GAINC AAMOV BYTE PT X,JMP XITA:MOV BT TRBX, EXI: MO AX, 0HNT 21CODE NSEND STAT10. (原 7)设字变量单元 A、B、C 存放有三个数,若三个数都不为零

38、,则求三 个数得与 , 存放在 D中; 若有一个为零,则将其余两个也清零 , 试编写程序。解答: A SEGENTA ?DB ?C D ? W ?DTA NDSST K SEGMENTSTACK ND O E S MENTASSUME D:SDAA,C:COD,E SS:STAC, ES:DATASAT: M AX,DAT M D, X?EA SI,ALEA I ,?MOV AL,S CMP AL,00?Z ZEROADC X,ALL A S,B?MOV AL,SI?CMP AL,00Z RO?D DX ,ALLEA I ,C ?MOV AL,SI ?CMP L,00 ?Z Z ?ADC DX

39、,ALOV DI,D?J P EXITZEO:?MOV AL,0?MO ,AL?M V B, LOV C,ALEXI:O AX,4 0HINT 21HCODE ENDSED T T11(1 )试编程序,统计由 TAL开始得 128 个单元中所存放得字符“ A" 得个数,并将结果存放在 DX中。解答:AA EG ENTTALE D X , 2,、X12DA ENDS TAK SE ENTSTACK ENDS ODE SEGMENTSSUME D:SDATA,CS:CODE, S:STAC,E: DATASART: V A, AAM V D ,AXE I,TA LEMV DX,MOV ,

40、 12 AIN: MOV L,SICMP AL,' 'J EXINC DXNET: I SILOOP AGAINMO X,4C00HINT 21C E DSND TRT12.试编制一个汇编语言程序 ,求出首地址为 DATA得000 个字数组中得最小偶 数,并把它存放于 MIN 单元中。 (方法:利用书上排序得例题做相应得修改即 可,略)13在上题中,如果要求同时找出最大与最小得偶数,并把它们分别存放于MAX与 MIN单元中,试完成程序 . 解答: 略(方法同第 2 题). 1(28)在 DAT字数组中存放有 100H 个 16 位补码数,试编写一程序求它们得平均值,放在 AX

41、中,并求出数组中有多少个数小于平均值 , 将结果存于 X中。(略). (17)编写一个子程序,对 AL中得数据进行偶校验 , 并将经过校验得结果 放回 AL 中。解答:DATA GMENTCOUN QU DATA NDSSTACK SGME TSTA NDS O EGMENT ASSUME D:SAA,S:CODE,SS: TACK, S:DTA TART: MOV X, AAMO S, XPUS XM V DX,0O CX,ONTAGAI: R R AL, JNC INC DXL:OOP AGAIOP X EST DX,01 J XITOR AL , 0EXIT: MOV AX,4C0H N

42、T 21H; ANOHER METHRDJP EXITR AL,80HEXIT: MO A, 00HI T 1H CO E DS END START 。(8)利用上题得予程序 , 对 DAT开始得 256 个单元得数据加上偶校 验,试编程序。解答:DAT EGMENTDAT DB 、;25 DUP (? )RESLT DB 、;256 DP (? ) UM 256 OUNT EQ 7TA ENDSSTA S GMEN TACK E DCODE SEGENTASUE S:DAA,C:CODE,S: A, ES: ATA STRT: MO AX,DATMOV D , XLE I,D TLE DI

43、, SULTMOV C, N MNEXT: MO AL, I CALL S 1MOV I ,AL;MV I , LNC SIINC DILOO NE TOV X,400 NT 1HSB1 PPUSH A X,0MOV X,COGAI: RCR AL, 1J LINC L:LOOP A INPO AXTEST ,01JZ Q OR AL,80HQUIT: R TSU ENDPCODE NSEN START17。(19)试编写程序实现将键盘输入得小写字母转换成大写字母并输出。 解答:DATA GMEMESS D 'THE INPT S NT CORC、',0DH,0AH,'

44、 TA ENDSTACK EGM T TAC NDSCODE SGMENTASSUME : ATA,C:CDE,S:STAK,ES:DAT TAT: MV AX,DATMOV DS,AXNEXT: OV AH,0INT 2 HC P AL,'Q'JZ X TCMP AL,'a B ERRORCM AL,' z'J RORSUB AL,2 HMOV , 02HMOV DL , AINT 21 JM NEXTERRO: OV AH,0H A X,MESSNT 21HJP NEXTEXIT: OV AX,4C00IT 21COE ENDSEND STR从键盘接

45、收 2个字符 , 按键入顺序查找最大得字符,并显示输出 解答:DATA EENTA D 20 DU( ?)DT E DSSTAK GMENTSTCK ENDSCODE SEGMNT SS E DS:DATA,CS:CODE, : STACK,ES:DATASTAR:MOV A, AT?OV D, A; 从键盘接收 2个字符,并送 A中保存?LEA SI ,DATM V CX,20EXT:?MOV AH, 1HINT 21HMOV ,LINC S ?LOP NEX;比较 20 个字符中得最大字符,并放入 L 中?MOV CX,1LE SI,DA ?MOV L, I ?NC SINEXT1:?CM AL ,I ?J E LLMOV AL, SIL:? C SI?LOOP NEXT1;将最大得字符得 ASII 码由 AL送 DL

温馨提示

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

评论

0/150

提交评论