微机原理与接口技术课后习的题目问题解释完整版_第1页
微机原理与接口技术课后习的题目问题解释完整版_第2页
微机原理与接口技术课后习的题目问题解释完整版_第3页
免费预览已结束,剩余41页可下载查看

下载本文档

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

文档简介

1、习题 11. 什么是汇编语言,汇编程序,和机器语言答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。汇编语言是面向及其的程序设计语言。 在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。 这种用符号代替机器语言的二进制码, 就把机器语言编程了汇编语言。使用汇编语言编写的程序, 机器不能直接识别, 要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。2. 微型计算机系统有哪些特点具有这些特点的根本原因是什么答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。这些特点是由

2、于微型计算机广泛采用了集成度相当高的器件和部件, 建立在微细加工工艺基础之上。3. 微型计算机系统由哪些功能部件组成试说明“存储程序控制”的概念。答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。“存储程序控制”的概念可简要地概括为以下几点: 计算机(指硬件)应由运算器、存储器、控制器和输入 /输出设备五大基本部件组成。 在计算机内部采用二进制来表示程序和数据。 将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下, 自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。 五大部件以运算器为中心进行组织。4. 请

3、说明微型计算机系统的工作过程。答:微型计算机的基本工作过程是执行程序的过程,也就是CPU 自动从程序存放的第 1 个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。5. 试说明微处理器字长的意义。答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。 它决定着计算机内部寄存器、 ALU 和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。在完成同样精度的运算时, 字长较长的微处理器比字长较短的微处理器运算速

4、度快。6. 微机系统中采用的总线结构有几种类型各有什么特点答:微机主板常用总线有系统总线、 I/O 总线、 ISA 总线、 IPCI 总线、AGP 总线、IEEE1394 总线、 USB 总线等类型。7. 将下列十进制数转换成二进制数、八进制数、十六进制数。 ()10=() 2=()8=()16 ()10=() 2=()8=()16 ()10=() 2=()8=()168. 将下列二进制数转换成十进制数。 ()2=()10 ()2=()10 ()2=()109. 将下列十进制数转换成 8421BCD 码。 2006=(0010 0000 0000 0110)BCD =(0001 0010 01

5、01 0110) BCD10. 求下列带符号十进制数的 8 位基 2 码补码。 +127 补 = 01111111 -1补= -128 补 = +1 补 = 0000000111. 求下列带符号十进制数的 16 位基 2 码补码。 +655 补 = 00000011 -1 补 =110 -3212 补=100 +100 补=0000000001100100习题 21. 8086 CPU 在内部结构上由哪几部分组成各部分的功能是什么答:8086 CPU内部由两大独立功能部件构成,分别是执行部件和总线接口部件。执行部件负责进行所有指令的解释和执行,同时管理有关的寄存器。总线接口部件是 CPU 在存

6、储器和 I/O 设备之间的接口部件,负责对全部引脚的操作。2. 简述 8086 CPU 的寄存器组织。答: 8086 CPU内部共有 14 个 16 位寄存器,按用途可分为数据寄存器,段寄存器,地址指针与变址寄存器和控制寄存器。数据寄存器包括累加器,基址寄存器,计数器,和数据寄存器。段寄存器用来存放各分段的逻辑段基值,并指示当前正在使用的 4 个逻辑段。地址指针与变址寄存器一般用来存放主存地址的段内偏移地址,用于参与地址运算。控制寄存器包括指令寄存器和标识寄存器。3. 试述 8086 CPU 标志寄存器各位的含义与作用。答:标志寄存器是 16 位的寄存器,但实际上 8086 只用到 9 位,其

7、中的 6 位是状态标识位, 3 位是控制标识位。状态标志位分别是CF,PF, AF ,ZF,SF,和 OF;控制标志位包括DF, IF, TF。CF:进位标志位。算数运算指令执行后,若运算结果的最高位产生进位或借位,则 CF=1,否则 CF=0。PF:奇偶标志位。反应计算结果中 1 的个数是偶数还是奇数。若运算结果的低 8 位中含有偶数个 1,则 PF=1;否则 PF=0.AF:辅助进位标志。算数运算指令执行后,若运算结果的低 4 位向高 4 位产生进位或借位,则 AF=1;否则 AF=0.ZF:零标志位。若指令运算结果为0,则 ZF=1;否则 ZF=0。SF:符号标志位。它与运算结果最高位相

8、同。OF:溢出标志位。当补码运算有溢出时,OF=1;否则 OF=0。DF:方向标志位。用于串操作指令,指令字符串处理时的方向。IF:中断允许标志位。用来控制8086 是否允许接收外部中断请求。TF:单步标志位。它是为调试程序而设定的陷阱控制位。4. 8086 CPU 状态标志和控制标志有何不同程序中是怎样利用这两类标识的8086 的状态标志和控制标识分别有哪些答:状态标志位反应了当前运算和操作结果的状态条件,可作为程序控制转移与否的依据。它们分别是 CF, PF,AF ,ZF,SF,和 OF。控制标志位用来控制 CPU 的操作,由指令进行置位和复位,控制标志位包括 DF,IF,TF。5. 将

9、1001 1100和 1110 0101相加后,标识寄存器中 CF, PF, AF, ZF, SF, OF各为何值答: CF=1,PF=1,AF=1, ZF=0,SF=1,OF=06. 什么是存储器的物理地址和逻辑地址在 8086 系统中,如何由逻辑地址计算物理地址答:逻辑地址是思维性的表示,由段地址和偏移地址联合表示的地址类型叫逻辑地址。物理地址是真实存在的唯一地址,指的是存储器中各个单元的单元号。在 8086 系统中,物理地址 =段地址× 10H偏移地址7. 段寄存器 CS=1200H,指令指针寄存器 IP=4000H ,此时,指令的物理地址为多少指向这一地址的 CS 指和 IP

10、 值是唯一的吗答:此指令的物理地址 =1200H×10H 4000H=16000H 并且指向这一物理地址的 CS 值和 IP 值并不是唯一的。8. 在 8086 系统中,逻辑地址 FFFF :0001, 00A2:37F 和 B800: 173F 的物理地址分别是多少答:逻辑地址FFFF: 000100A2:3TFB800:173F物理地址FFFF1H00D9FHB973FH9.在 8086 系统中,从物理地址388H 开始顺序存放下列3 个双字节的数据651AH ,D761H 和 007BH ,请问物理地址 388H,389H,38AH ,38BH,38CH和 38DH 6 个单元

11、中分别是什么数据答:(388H)=1AH ,(389H)=65H,(38AH )=61H,(38BH)=DTH ,(38CH)=7BH,(38DH )=00H10. 8086 微处理器有哪几种工作模式各有什么特点答: 8086 微处理器有最大和最小工作模式。在最小模式下: 8086 CPU 直接产生全部总线控制信号( DT/R , DEN, ALE ,M/IO )和命令输出信号( RD,WR ,INTA )并提出请求访问总线的逻辑信号 HOLD ,HLDA 。在最大工作模式下,必须配置 8288 总线控制器,并且根据 8086 提供的状态信号 S2, S1,S0,输出读写控制命令,可以提供灵活

12、多变的系统配置,以实现最佳的系统性能。11. 简述 8086 引脚信号中 M/IO , DT/R , RD, WR , ALE ,DEN 和 BHE 的作用。答: M/IO :输出信号,高电平时,表示 CPU 与存储器之间数据传输;低电平时,表示 CPU 与 I/O 设备之间数据传输。DT/R :控制其数据传输方向的信号。 DT/R=1 时,进行数据发送; DT/R=0 时,进行数据接收。RD:CPU 的读信号, RD=0 时,表示 8086 为存储口或 I/O 端口读操作。WR:CPU 的写信号, WR =0 时,表示 8086 为存储口或 I/O 端口写操作。ALE :地址存锁信号,在T1

13、 能时刻有效。DEN:数据选通信号,当DEN 有效时,表示允许传输。BHE:数据总线允许信号,与A0 组合使用,表示是否访问奇地址字节。12. 简述 8086 读总线周期和写总线周期和引脚上的信号动尖态变化过程。8086的读周期时序和写周期时序的区别有哪些答:在 8086 读周期内,有关总线信号的变化如下: M/ IO :在整个读周期保持有效, 当进行存储器读操作时, M/ IO 为高电平;当进行 I/O 端口读操作时, M/ IO 为低电平。A 19/S6 A 16/S3:在 T1 期间,输出 CPU 要读取的存储单元或I/O 端口的地址高 4 位。 T2T4 期间输出状态信息S6-S3。

14、BHE /S7:在 T1 期间,输出 BHE 有效信号 ( BHE 为低电平 ),表示高 8 位数据总线上的信息可以使用, BHE 信号通常作为奇地址存储体的体选信号 (偶地址存储体的体选信号是最低地址位 A 0)。T2 T4 期间输出高电平。AD l5 AD 0:在 T1 期间,输出 CPU 要读取的存储单元或 I/O 端口的地址A15A 0。T2 期间为高阻态, T3T4 期间,存储单元或 I/O 端口将数据送上数据总线。 CPU 从 AD l5 AD 0 上接收数据。ALE :在 T1 期间地址锁存有效信号, 为一正脉冲, 系统中的地址锁存器正是利用该脉冲的下降沿来锁存 A 19/S6A

15、 16/S3,AD l5 AD 0 中的 20 位地址信息以及BHE。 RD :T2 期间输出低电平送到被选中的存储器或I/O 接口,注意,只有被地址信号选中的存储单元或I/O 端口,才会被 RD 信号从中读出数据 (数据送上数据总线 AD l5AD 0)。 DT/ R :在整个总线周期内保持低电平,表示本总线周期为读周期,在接有数据总线收发器的系统中,用来控制数据传输方向。 DEN :在 T2T3 期间输出有效低电平, 表示数据有效, 在接有数据总线收发器的系统中,用来实现数据的选通。总线写操作的时序与读操作时序相似,其不同处在于:AD l5 AD 0:在 T2 T4 期间送上欲输出的的数据

16、,而无高阻态。WR :从 T24WR引脚输出有效低电平, 该信号送到所有的存储器和 I/OT,接口。注意,只有被地址信号选中的存储单元或I/O 端口才会被 WR 信号写入数据。 DT/ R :在整个总线周期内保持高电平,表示本总线周期为写周期,在接有数据总线收发器的系统中,用来控制数据传输方向。习题 31. 假定( DS)=2000H,( ES) =2100H,(SS) =1500H,(SI) =00A0H ,(BX )=0100H,( BP) =0010H,数据变量 VAL 的偏移地址为 0050H,请指出下列指令原操作数是什么寻址方式,其物理地址是多少(1) MOVAX, 0ABH(2)

17、MOVAX, 100H(3) MOVAX, V AL(4) MOVBX, SI(5) MOVAL, V ALBX(6) MOVCL, BXSI(7) MOVVALSI, BX(8) MOVBPSI, 100答: (1) 立即数寻址,无物理地址(2) 直接寻址,物理地址 =2000H×10H+100H=20100H(3) 直接寻址,物理地址 =2000H×10H+0050H=20050H(4) 寄存器间接寻址,物理地址 =2000H×10H+00A0=200A0H(5) 相对寄存器寻址, 物理地址 =2000H× 10H+( 0050+0100H)=201

18、50H(6) 基址加变寻址,物理地址 =2000H×10H+(0100H+00A0H)=201A0H(7) 寄存器寻址,无物理地址(8) 立即数寻址,无物理地址2. 已知( SS)=0FFA0H ,(SP)=00B0H ,先执行两条把 8057H 和 0F79H 分别进栈的 PUSH 指令,再执行一条 POP 指令,试画出堆栈区和 SP 内容变化的过程示意图。答:“ 8057H”进栈,则 SP 自动从 00B0H 指向 00B2H,“0F79H”进栈,则 SP自动从 00B2H 指向 00B4H;执行一条 POP指令,“0F79H”被弹出栈,SP 从 00B4H 指向 00B2H。图

19、略。3. 设有关寄存器及存储单元的内容如下:(DS)=2000H, (BX)=0100H, (AX)=1200H, (SI)=0002H, (20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH, (21202H)=0B7H, (21203H)=65H.试说明下列各条指令单独执行后相关寄存器或存储单元的内容。(1) MOV AX, 1800H(2) MOV AX, BX(3)MOV BX, 1200H(4)MOV DX, 1100BX(5)MOV BXSI, AL(6)MOV AX, 1100B

20、XSI答: (1) (AX)=1800H (2) (AX)=0100H (3) (BX)=4C2AH(4) (DX)=4C2AH (5) (20102H)=00H (6) (AX)=65B7H4. 写出实现下列计算的指令序列。(1) Z=W+(X+Z)(2) Z=W-(X+6)-(R+9)答: (1)MOVAX, ZADDAX, XADDAX, WMOVZ, AX(2)MOVAX, WADDX, 6SUBAX, XADDR, 9SUBAX, RMOVZ, AX5. 若在数据段中从字节变量 TABLE 相应的单元开始存放了 015 的平方值,试写出包含 XLAT 指令的指令序列查找 N( 015

21、)中的某个平方数。答: LEABX, TABLEMOVAL, CLXLAT6. 写出实现下列计算的指令序列。(1) Z=(W*X)/(R+6)(2) Z=(W-X)/5*Y)*2答: (1) MOVAX, WIMULXADDR, 6IDIVRMOV(2) MOVSUBMOVIDIVZ, AXAX, WAX, XBL, 5BLCBWIMULMOVIMULMOVYBX, 2BXZ, AX7.假定 (DX)=001B,CL=3 ,CF=1, 试确定下列各条指令单独执行后DX 的值。(1) SHR DX, 1(2) SHL DL, 1(3) SAL DH, 1(4) SAR DX, CL(5) ROR

22、 DX, CL(6) ROL DL, CL(7) RCR DL, 1(8) RCL DX, CL答: (1) (DX)=0110 0100 1101 1100B (2) (DX)=1100 1001 0111 0010B(3) (DX)=1001 0010 1011 1001B (4) (DX)= 1111 1001 0011 0111B(5) (DX)= 0011 1001 0011 0111B (6)(DX)= 0100 1101 1100 1110B(7) (DX)= 1110 0100 1101 1100B (8) (DX)= 1001 0011 0111 0011B8. 已知程序段如

23、下:MOVAX, 1234HMOVCL, 4ROLAX, CLDECAXMOVCX, 4MULCXINT20H试问:(1)每条指令执行后, AX 寄存器的内容是什么 ( 2)每条指令执行后,CF, SF 及 ZF 的值分别是什么( 3)程序运行结束后, AX 及 DX 寄存器的值为多少答: MOVAX, 1234H(AX)=1234H, CF=0 ,SF=0,ZF=0MOVCL, 4ROLAX,CL(AX)=2341H,CF=1 ,SF=0,ZF=0DECAX(AX)=2340H,CF=1 ,SF=0,ZF=0MOVCX,4MULL CX(AX)=8D00H, CF=0,SF=1,ZF=0IN

24、T20H结束后, (DX)=0000H, (AX)=8000H9. 试分析下列程序段:ADD AX, BX JNC L2SUBAX, BXJNCL3JMPSHORTL5如果 AX ,BX 的内容给定如下:AXBX(1) 14C6H80DCH(2) B568H54B7H问该程序在上述情况下执行后,程序转向何处。答:(1)转到 L2 处( 2)转到 L3 处习题 41下列语句在存储器中分别为变量分配多少字节空间并画出存储空间的分配图。VAR1 DB 10 ,2VAR2 DW 5 DUP (), 0VAR3 DB HOW ARE YOU ,3 DUP (1,2)VAR4 DD -1 ,1,0答:字节

25、空间:VAR1:2;VAR2:12;VAR3:13;VAR4:8。存储空间的分配图:2假定 VAR1 和 VAR2 为字变量, LAB为标号,试指出下列指令的错误之处。( 1) ADD V AR1, VAR2(2)SUB AL , VAR1( 3) JMPLABCX(4)JNZVAR1( 5)MOV 1000H, 100(6)SHL AL,4答: (1) 在算术运算指令中,两个操作数不能同时为存储器寻址方式(2) AL 为字节, VAR1 为字变量,字长不相等;(3) 错误 1:寄存器相对寻址方式, 只能使用基址或变址寄存器, 不能使用 CX寄存器。错误 2:汇编格式错误,无法判段是段内转移还

26、是段间转移。(4) 转向地址应为标号,不能是变量;(5) 目的操作数的类型不确定;(6) SHL 指令中,当所移位数超过 1 时,必须用 CL 取代所移位数。3对于下面的符号定义,指出下列指令的错误。A1 DBA2 DB 10K1 EQU 1024(1) MOV K1 ,AX (2)MOV A1 ,AX(3)CMP A1, A2 (4)K1 EQU 2048答: (1)K1 为常量,不能用 MOV 指令赋值;(2)A1 为字节, AX 为字变量,类型不一致;(3)A1 和 A2 同为存储器寻址方式,不符合语法规则;(4)K1 重新赋值前,必须用PURGE 释放。4数据定义语句如下所示:FIRS

27、T DB 90H ,5FH , 6EH , 69HSECOND DB 5 DUP()THIRD DB 5 DUP()FORTH DB 4 DUP ()自 FIRST 单元开始存放的是一个四字节的十六进制数(低位字节在前 ),要求 :编一段程序将这个数左移两位后存放到自 SECOND 开始的单元 ,右移两位后存放到自 THIRD 开始的单元 ,求补后放到 FORTH 开始的单元。 (注意保留移出部分 )答:DATA SEGMENTFIRSTDB 90H , 5FH , 6EH ,69HSECONDDB 5 DUP()THIRDDB 5 DUP()FORTHDB 4 DUP ()DATA ENDS

28、CODE SEGMENTASSUME CS : CODE , DS: DATASTART : MOVAX , DATAMOVDS, AXLEASI, FIRSTLEADI , SECONDMOV CX ,2CLC;左移2 位MOVAX , WORDPTRSI; AX=5F90H为低十六位数据INC SIINC SIMOVDX , WORDPTRSI; DX=696EH为高十六位数据PUSHDX;保存原有的高十六位数据PUSHAX;保存原有的低十六位数据ROLDX ,CL;将高位数据不带进位循环左移两位,即高2 位数据在DL的低2 位ANDDL , 03H;让DL中仅保存移出的高2 位数据MOV

29、DI+4, DL ;将移出的高2 位数据放入SECOND中的最高单元中ROLAX ,CL;将低位数据不带进位循环左移两位,即AX的高2 位在AL的低 2 位ANDAL , 03H;让 AL中仅保存移出的AX 高2位数据MOVBL ,AL ;将 AL中的数据放入BL 中保存POPAX ;弹出原有的低十六位数据POPDX ;弹出原有的高十六位数据SHLDX ,CL ;将高位数据算术逻辑左移2 位SHLAX ,CL ;将低位数据算术逻辑左移2 位ORDL , BL ;将 AX 中移出的高 2 位数据放入 DX 的低 2 位MOVWORDPTRDI, AXMOVWORDPTRDI+2 , DX;右移2

30、位LEASI, FIRSTLEADI , THIRDMOVCLCCX,2MOV AX,WORDPTRSI; AX=5F90H为低十六位数据INC SIINC SIMOVDX , WORDPTRSI ; DX=696EH 为高十六位数据PUSHDX ;保存原有的高十六位数据PUSHAX ;保存原有的低十六位数据RORAX , CL ;将低位数据不带进位循环右移两位,即低2 位数据在AH 的高 2位ANDAH , 0C0H ;让 AH中仅保存移出的低 2 位数据PUSHCXMOVCX ,6SHRAH ,CLPOPCXMOVDI , AH;将移出的低 2 位数据放入 THIRD中的最低单元中RORD

31、X, CL;将低位数据不带进位循环左移两位,即AX 的高 2位在 AL 的低 2位ANDDH , 0C0H;让 DH 中仅保存移出的DX 低2位数据MOVBL ,DH;将 DH 中的数据放入 BL 中保存POPAX;弹出原有的低十六位数据POPDX;弹出原有的高十六位数据SHRDX ,CL;将高位数据算术逻辑左移2位SHRAX ,CL;将低位数据算术逻辑左移2位ORAH ,BL;将 DX 中移出的低 2 位数据放入 AX 的高 2位MOVWORDPTRDI+1, AXMOVWORDPTRDI+3, DX;求补LEASI, FIRSTLEADI , FORTHMOVAX , WORDPTRSI;

32、 AX=5F90H为低十六位数据INC SIINC SIMOVDX , WORDPTRSI; DX=696EH为高十六位数据XORAX , 0FFFFH;将低十六位取反XORDX , OFFFFH;将高十六位按位取反CLCADDAX , 01H;低位加 1,即可为原数的求补ADCDX ,0;高位加低位加法时的进位MOVWORDPTRDI, AXMOVWORDPTRDI+2 , DXMOV AH ,4CHINT 21HCODE ENDSEND START5. 试编程序将内存从 40000H 到 4BFFFH 的每个单元中均写入 55H,并再逐个单元读出比较,看写入的与读出的是否一致。若全对,则将

33、AL 置 7EH; 只要有错,则将AL 置 81H 。答:DATASEGMENTDA1DB55HCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,4000HMOVDS,AXMOVCX,0C000HMOVBX,0000HNEXT1:LOOPNEXT2:EXIT:MOVAH,55HMOVbyte ptrBX,AHINCBXNEXT1MOVBX,0000HMOVCX,0C000HMOVAL,81HMOVAH, BXCMPAH,55HJNZEXITINCBXLOOPNEXT2MOVAL,7EHMOVAH,4CHINT21HCODEENDSENDSTART6. 在当

34、前数据段 4000H 开始的 128 个单元中存放一组数据, 试编程序将它们顺序搬移到 A000H 开始的顺序 128 个单元中,并将两个数据块逐个单元进行比较 ; 若有错将 BL 置 00H; 全对则将 BL 置 FFH ,试编程序。答:DATASEGMENTORG400HDA1DB128 DUP()ORG0A00HDA2DB128 DUP()DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART: MOVAX,DATAMOVDS,AXLEASI,DA1LEADI,DA2MOVCX,128AGAIN:MOVAL,SIINCSIINCDILO

35、OPAGAINLEASI, DA1LEADI, DA2MOVCX,128NEXT:MOVAL,SIMOVBL,DICMPAL,BLJNZERRORINCSIINCDIMOVBL,0FFHLOOPNEXTJMPEXITERROR: MOVBL,00HEXIT:MOVAH,4CHINT 21HCODEENDSENDSTART7. 设变量单元 A 、B、C 存放有 3 个数,若 3 个数都不为零,则求 3 个数的和,存放在 D 中; 若有一个为零,则将其余两个也清零,试编写程序。答:DATASEGMENTA DBB DBCDBDATAENDSCODESEGMENTASSUMECS:CODE,DS:D

36、ATASTART: MOVAX,DATAMOVDS,AXCMPA,00HJNZLP1MOVB,0MOVC,0JMPLP4LP1:CMPB,00HJNZLP2MOVA,0MOVC,0JMPLP4LP2:CMPC,00HJNZLP3MOVA,0MOVB,0JMPLP4LP3:MOVAL,AADDAL,BADDAL,CMOVAH,4CHLP4:INT21HCODEENDSENDSTART8. 有一个 100 个字节的数据表,表内元素已按从大到小的顺序排列好,现给定一元素,试编程序在表内查找,若表内已有此元素,则结束 ; 否则,按顺序将此元素插入表中适当的位置,并修改表长。答:DATASEGMENTB

37、UFFDB100 DUP()DA1DB()LENGTHDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART: MOVAX,DATAMOVDS,AXMOVSI,0MOVAL,DA1MOVCX,100FIND0: CMPBUFFSI,ALJZEXITINCSILOOPFIND0MOVDI,99MOVSI,0COMPARE: CMPBUFFDI,ALJGINSERTMOVBL,BUFFDIMOVBUFFDI+1,BLDECDICMPDI,SIJNLCOMPAREJMPEXITINSERT:MOVBUFFDI+1,ALMOVLENGTH , 101EXIT:

38、MOVAH,4CHINT21HCODEENDSENDSTART9. 内存中以FIRST和SECOND开始的单元中分别存放着两个16 位组合的十进制 (BCD码 )数,低位在前。编程序求这两个数的组合的十进制和,并存到以THIRD开始的单元。答:DATASEGMENTFIRSTDDHSECONDDDHTHIRDDB,DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,FIRSTLEADI,SECONDLEABX,THIRDMOVCX,4CLCAGAIN:MOVAL,BYTE PTRSIMOVDL,BYTE P

39、TRDIADCAL,DLDAAMOVBYTE PTRBX,ALINCSIINCDIINCBXLOOPAGAINJC AAMOVBYTE PTRBX,0JMPEXITAA: MOV BYTE PTRBX,1EXIT:MOV AH,4CH INT 21HCODEENDSENDSTART10. 编写一段程序,接收从键盘输入的 10 个数,输入回车符表示结束,然后将这些数加密后存于 BUFF 缓冲区中。加密表如下 :输入数字 : 0,1,2,3,4,5, 6,7,8,9; 密码数字 : 7,5,9,1, 3, 6,8,0,2,4。答:DATASEGMENTMITABCONTBUFFYUANWENDB&

40、#39;24'EQU$-MITABDB10 DUP (),'$'DB10 DUP (),'$'DATAENDSCODESEGMENTASSUMECS CODE, DS DATASTART:MOVAX ,DATAMOVDS,AXMOVSI, 0MOVCX ,CONTINPUT:MOVAH,1INT21HCMPAL ,13JZEXITANDAL ,0FHMOVYUANWENSI,ALINCSILOOPINPUTEXIT :LEABX ,MITABMOVCX,SIMOVSI,0JIAMI:MOVAL ,YUANWENSIXLATMITABMOVBUFFSI ,

41、 ALINCSILOOPJIAMIMOVAH,4CHINT21HCODEENDSENDSTART11.试编程序,统计由 40000H 开始的 16K 个单元中所存放的字符“ A ”的个数,并将结果存放在 DX 中。答:DATASEGMENTDA1DB'A'BUFFDB4000H DUP()DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,4000HMOVDS,AXMOVBX,0MOVCX,4000HFIND:MOVAL,BXMOVBL,DA1CMPAL,BLJNZNEXTINCDXNEXT:INCSILOOPFINDMOVA

42、H,4CHINT21HCODEENDSENDSTART12. 在当前数据段 (DS),偏移地址为 DATAB 开始的顺序 80 个单元中,存放着某班 80 个同学某门考试成绩。按如下要求编写程序 :(1) 编写程序统计 90 分 ; 80 分 89 分 ; 70 分 79 分 ; 60 分 69 分, 60 分的人数各为多少,并将结果放在同一数据段、偏移地址为 BTRX 开始的顺序单元中。(2) 试编程序, 求该班这门课的平均成绩为多少, 并放在该数据段的 AVER 单元中。答:DATA SEGMENTBUFF DW 80 DUP() DA9 DB 0DA8 DB 0 DA7 DB 0 DA6 DB 0 DA5 DB 0 AVER DB 0DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,80COMPARE: MOVBX,0CMPBUFFBX,90JBLP8INCDA9JMPNEXTLP8:CMPBUFFBX,80JBLP7INCDA8JMPNEXTLP7:CMPBUFFBX,70JBLP6INCDA7JMPNEXTLP6:CMPBUFFBX,60JBLP5INCDA6JMPNEXTLP5:INCDA5JMPNEXTNEXT:INCBXLOOPCOMPAREMOVCX

温馨提示

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

评论

0/150

提交评论