微机原理与接口技术(第二版)课后习题答案完整版.pdf

上传人:赵** 文档编号:21127245 上传时间:2022-06-18 格式:PDF 页数:43 大小:1.09MB
返回 下载 相关 举报
微机原理与接口技术(第二版)课后习题答案完整版.pdf_第1页
第1页 / 共43页
微机原理与接口技术(第二版)课后习题答案完整版.pdf_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《微机原理与接口技术(第二版)课后习题答案完整版.pdf》由会员分享,可在线阅读,更多相关《微机原理与接口技术(第二版)课后习题答案完整版.pdf(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、习题习题 1 11. 1. 什么是汇编语言,汇编程序,和机器语言?什么是汇编语言,汇编程序,和机器语言?答: 机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。汇编语言是面向及其的程序设计语言。 在汇编语言中, 用助记符代替操作码,用地址符号或标号代替地址码。 这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。使用汇编语言编写的程序, 机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。2. 2. 微型计算机系统有哪些特点?具有这些特点的根本原因是什么?微型计算机系统有哪些特点?具有这些特点的根本原因是什么?答:微型计算机的

2、特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件, 建立在微细加工工艺基础之上。3. 3. 微型计算机系统由哪些功能部件组成?试说明微型计算机系统由哪些功能部件组成?试说明“ “存储程序控制存储程序控制” ”的概念。的概念。答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。“存储程序控制”的概念可简要地概括为以下几点: 计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。 在计算机内部采用二进制来表示程序和数据。 将编好的程序

3、和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。 五大部件以运算器为中心进行组织。4. 4. 请说明微型计算机系统的工作过程。请说明微型计算机系统的工作过程。答:微型计算机的基本工作过程是执行程序的过程,也就是 CPU 自动从程序存放的第 1 个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。5. 5. 试说明微处理器字长的意义。试说明微处理器字长的意义。答: 微型机的字长是指

4、由微处理器内部一次可以并行处理二进制代码的位数。它决定着计算机内部寄存器、ALU 和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。在完成同样精度的运算时, 字长较长的微处理器比字长较短的微处理器运算速度快。6. 6. 微机系统中采用的总线结构有几种类型?各有什么特点?微机系统中采用的总线结构有几种类型?各有什么特点?答:微机主板常用总线有系统总线、I/O 总线、ISA 总线、IPCI 总线、AGP 总线、IEEE1394 总线、USB 总线等类型。7. 7. 将下列十进制数转换成二进制数、八进制数、十六进制数。将下列十进制数转换成二

5、进制数、八进制数、十六进制数。 (4.75)10=(0100.11)2=(4.6)8=(4.C)16 (2.25)10=(10.01)2=(2.2)8=(2.8)16 (1.875)10=(1.111)2=(1.7)8=(1.E)168. 8. 将下列二进制数转换成十进制数。将下列二进制数转换成十进制数。 (1011.011)2=(11.6)10 (1101.01011)2=(13.58)10 (111.001)2=(7.2)109. 9. 将下列十进制数转换成将下列十进制数转换成 8421BCD8421BCD 码。码。 2006=(0010 0000 0000 0110)BCD 123.45

6、6=(0001 0010 0011.0100 0101 0110)BCD10.10. 求下列带符号十进制数的求下列带符号十进制数的 8 8 位基位基 2 2 码补码。码补码。 +127补= 01111111 -1补= 11111111 -128补= 10000000+1补= 0000000111.11. 求下列带符号十进制数的求下列带符号十进制数的 1616 位基位基 2 2 码补码。码补码。 +655补= 0000001010001111 -1补=1111111111111110 -3212补=1111011101011100 +100补=0000000001100100习题习题 2 21.

7、 1. 8086 CPU8086 CPU 在内部结构上由哪几部分组成?各部分的功能是什么?在内部结构上由哪几部分组成?各部分的功能是什么?答:8086 CPU 内部由两大独立功能部件构成,分别是执行部件和总线接口部件。执行部件负责进行所有指令的解释和执行,同时管理有关的寄存器。总线接口部件是 CPU 在存储器和 I/O 设备之间的接口部件,负责对全部引脚的操作。2. 2. 简述简述 8086 CPU8086 CPU 的寄存器组织。的寄存器组织。答:8086 CPU 内部共有 14 个 16 位寄存器,按用途可分为数据寄存器,段寄存器,地址指针与变址寄存器和控制寄存器。数据寄存器包括累加器,基址

8、寄存器,计数器,和数据寄存器。段寄存器用来存放各分段的逻辑段基值,并指示当前正在使用的 4 个逻辑段。地址指针与变址寄存器一般用来存放主存地址的段内偏移地址,用于参与地址运算。控制寄存器包括指令寄存器和标识寄存器。3. 3. 试述试述 8086 CPU8086 CPU 标志寄存器各位的含义与作用。标志寄存器各位的含义与作用。答:标志寄存器是 16 位的寄存器,但实际上 8086 只用到 9 位,其中的 6 位是状态标识位,3 位是控制标识位。状态标志位分别是 CF,PF,AF,ZF,SF,和 OF;控制标志位包括 DF,IF,TF。CF:进位标志位。算数运算指令执行后,若运算结果的最高位产生进

9、位或借位,则 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:符号标志位。它与运算结果最高位相同。OF:溢出标志位。当补码运算有溢出时,OF=1;否则 OF=0。DF:方向标志位。用于串操作指令,指令字符串处理时的方向。IF:中断允许标志位。用来控制 8086 是否允许接收外部中断请求。TF:单步标

10、志位。它是为调试程序而设定的陷阱控制位。4. 4. 80868086 CPUCPU 状态标志和控制标志有何不同?程序中是怎样利用这两类标识状态标志和控制标志有何不同?程序中是怎样利用这两类标识的?的?80868086 的状态标志和控制标识分别有哪些?的状态标志和控制标识分别有哪些?答:状态标志位反应了当前运算和操作结果的状态条件,可作为程序控制转移与否的依据。它们分别是 CF,PF,AF,ZF,SF,和 OF。控制标志位用来控制 CPU 的操作,由指令进行置位和复位,控制标志位包括DF,IF,TF。5. 5. 将将 1001 11001001 1100和和 1110 01011110 0101

11、相加后,相加后, 标识寄存器中标识寄存器中 CF, PF, AF, ZF, SF, OFCF, PF, AF, ZF, SF, OF 各为各为何值?何值?答:CF=1,PF=1,AF=1,ZF=0,SF=1,OF=06. 6. 什么是存储器的物理地址和逻辑地址?在什么是存储器的物理地址和逻辑地址?在 80868086 系统中,如何由逻辑地址计系统中,如何由逻辑地址计算物理地址?算物理地址?答:逻辑地址是思维性的表示,由段地址和偏移地址联合表示的地址类型叫逻辑地址。物理地址是真实存在的唯一地址,指的是存储器中各个单元的单元号。在 8086 系统中,物理地址=段地址10H偏移地址7. 7. 段寄存

12、器段寄存器 CS=1200HCS=1200H,指令指针寄存器指令指针寄存器 IP=4000HIP=4000H,此时,此时,指令的物理地址为指令的物理地址为多少?指向这一地址的多少?指向这一地址的 CSCS 指和指和 IPIP 值是唯一的吗?值是唯一的吗?答: 此指令的物理地址=1200H10H4000H=16000H 并且指向这一物理地址的 CS 值和 IP 值并不是唯一的。8. 8. 在在 80868086 系统中,逻辑地址系统中,逻辑地址 FFFFFFFF:00010001,00A200A2:37F37F 和和 B800B800:173F173F 的物理的物理地址分别是多少?地址分别是多少

13、?答:逻辑地址物理地址9. 9. 在在 80868086 系统中,从物理地址系统中,从物理地址 388H388H 开始顺序存放下列开始顺序存放下列 3 3 个双字节的数据个双字节的数据FFFF:0001FFFF1H00A2:3TF00D9FHB800:173FB973FH651AH651AH, D761HD761H 和和 007BH007BH, 请问物理地址请问物理地址 388H388H, 389H389H, 38AH38AH, 38BH38BH, 38CH38CH和和 38DH 638DH 6 个单元中分别是什么数据?个单元中分别是什么数据?答: (388H)=1AH, (389H)=65H

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

15、性能。11.11. 简述简述 80868086 引脚信号中引脚信号中 M/IOM/IO,DT/RDT/R,RDRD,WRWR,ALEALE,DENDEN 和和 BHEBHE 的作的作用。用。答: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

16、:地址存锁信号,在 T1 能时刻有效。DEN:数据选通信号,当 DEN 有效时,表示允许传输。BHE:数据总线允许信号,与 A0 组合使用,表示是否访问奇地址字节。12.12. 简述简述 80868086 读总线周期和写总线周期和引脚上的信号动尖态变化过程。读总线周期和写总线周期和引脚上的信号动尖态变化过程。80868086的读周期时序和写周期时序的区别有哪些?的读周期时序和写周期时序的区别有哪些?答:答:在 8086 读周期内,有关总线信号的变化如下:M/IO:在整个读周期保持有效,当进行存储器读操作时,M/IO为高电平;当进行 I/O 端口读操作时,M/IO为低电平。A19/S6A16/S

17、3:在 T1期间,输出 CPU 要读取的存储单元或 I/O 端口的地址高 4 位。T2T4期间输出状态信息 S6-S3。BHE/S7:在 T1期间,输出 BHE 有效信号(BHE为低电平),表示高 8 位数据总线上的信息可以使用,BHE信号通常作为奇地址存储体的体选信号(偶地址存储体的体选信号是最低地址位 A0)。T2T4期间输出高电平。ADl5AD0:在 T1期间,输出 CPU 要读取的存储单元或 I/O 端口的地址A15A0。T2期间为高阻态,T3T4期间,存储单元或 I/O 端口将数据送上数据总线。CPU 从 ADl5AD0上接收数据。ALE:在 T1期间地址锁存有效信号,为一正脉冲,系

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

19、送上欲输出的的数据,而无高阻态。WR: 从 T2T4,该信号送到所有的存储器和 I/OWR引脚输出有效低电平,接口。注意,只有被地址信号选中的存储单元或 I/O 端口才会被WR信号写入数据。DT/R:在整个总线周期内保持高电平,表示本总线周期为写周期,在接有数据总线收发器的系统中,用来控制数据传输方向。习题习题 3 31. 1. 假定(假定(DSDS)=2000H=2000H, (ESES)=2100H=2100H, (SSSS)=1500H=1500H, (SISI)=00A0H=00A0H, (BXBX)=0100H=0100H, (BPBP)=0010H=0010H,数据变量,数据变量

20、V VALAL 的偏移地址为的偏移地址为 0050H0050H,请指出下列,请指出下列指令原操作数是什么寻址方式,其物理地址是多少?指令原操作数是什么寻址方式,其物理地址是多少?(1)(1) MOVMOVAX, 0ABHAX, 0ABH(3) MOV(3) MOVAX, VAX, VALAL(2) MOV(2) MOVAX, 100HAX, 100H(4) MOV(4) MOVBX, SIBX, SI(6) MOV(6) MOVCL, BXSICL, BXSI(8) MOV(8) MOVBPSI, 100BPSI, 100(5) MOV(5) MOVAL, VAL, VALBXALBX(7)

21、MOV(7) MOVV VALSI, BXALSI, BX答:(1) 立即数寻址,无物理地址(2) 直接寻址,物理地址=2000H10H+100H=20100H(3) 直接寻址,物理地址=2000H10H+0050H=20050H(4) 寄存器间接寻址,物理地址=2000H10H+00A0=200A0H(5) 相对寄存器寻址,物理地址=2000H10H+(0050+0100H)=20150H(6) 基址加变寻址,物理地址=2000H10H+(0100H+00A0H)=201A0H(7) 寄存器寻址,无物理地址(8) 立即数寻址,无物理地址2. 2. 已知(已知(SSSS)=0FFA0H=0FF

22、A0H, (SPSP)=00B0H=00B0H,先执行两条把,先执行两条把 8057H8057H 和和 0F79H0F79H 分别分别进栈的进栈的 PUSHPUSH 指令,指令,再执行一条再执行一条 POPPOP 指令,指令,试画出堆栈区和试画出堆栈区和 SPSP 内容变化的内容变化的过程示意图。过程示意图。答:“8057H”进栈,则 SP 自动从 00B0H 指向 00B2H, “0F79H”进栈,则 SP自动从 00B2H 指向 00B4H; 执行一条 POP 指令,“0F79H” 被弹出栈, SP 从 00B4H指向 00B2H。图略。3. 3. 设有关寄存器及存储单元的内容如下:设有关

23、寄存器及存储单元的内容如下:(DS)=2000H,(DS)=2000H,(BX)=0100H,(BX)=0100H,(AX)=1200H,(AX)=1200H,(SI)=0002H,(SI)=0002H,(20100H)=12H,(20100H)=12H,(20101H)=34H,(20101H)=34H,(20102H)=56H,(20102H)=56H,(20103H)=78H,(20103H)=78H,(21200H)=2AH,(21200H)=2AH,(21201H)=4CH, (21202H)=0B7H, (21203H)=65H.(21201H)=4CH, (21202H)=0B7

24、H, (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, 1100BXSI答:(1) (AX)=1800H (2) (AX)=0100H (3) (BX)=4C2AH(4) (DX)=4C2AH (5) (20102H)=00H (6) (AX)=65B7H4. 4.写出实现下列计算的指令序列。写出实现下列计算的指令序列。(1) Z=

25、W+(X+Z)(1) Z=W+(X+Z)(2) Z=W-(X+6)-(R+9)(2) Z=W-(X+6)-(R+9)答:(1)MOVAX, ZADDAX, XADDAX, WMOVZ, AX(2)MOVAX, WADDX, 6SUBAX, XADDR, 9SUBAX, RMOVZ, AX5. 5.若在数据段中从字节变量若在数据段中从字节变量 TABLETABLE 相应的单元开始存放了相应的单元开始存放了 015015 的平方值,的平方值,试写出包含试写出包含 XLATXLAT指令的指令序列查找指令的指令序列查找 N N(015015)中的某个平方数。)中的某个平方数。答:LEABX, TABL

26、EMOVAL, CLXLAT6. 6.写出实现下列计算的指令序列。写出实现下列计算的指令序列。(1) Z=(W*X)/(R+6)(1) Z=(W*X)/(R+6)(2) Z=(W-X)/5*Y)*2(2) Z=(W-X)/5*Y)*2答:(1) MOVAX, WIMULXADDR, 6IDIVRMOVZ, AX(2) MOVAX, WSUBAX, XMOVBL, 5IDIVBLCBWIMULYMOVBX, 2IMULBXMOVZ, AX7. 7.假定假定(DX)=1100100110111001B,CL=3(DX)=1100100110111001B,CL=3 ,CF=1,CF=1, 试确定下

27、列各条指令单独执行试确定下列各条指令单独执行后后 DXDX 的值。的值。(1) SHR DX, 1(1) SHR DX, 1(2) SHL DL, 1(2) SHL DL, 1(3) SAL DH, 1(3) SAL DH, 1(4) SAR DX, CL(4) SAR DX, CL(5) ROR DX, CL(5) ROR DX, CL(6) ROL DL, CL(6) ROL DL, CL(7) RCR DL, 1(7) RCR DL, 1(8) RCL DX, CL(8) RCL DX, CL答:(1) (DX)=0110 0100 1101 1100B(2) (DX)=1100 100

28、1 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. 8.已知程序段如下:已知程序段如下:MOVMOVAX, 1234HAX, 1234HMOVMOVCL, 4CL, 4ROLROLAX, CLAX, CLDECDECAXAXMOVMOVCX, 4CX, 4MULMU

29、LCXCXINTINT20H20H试问:试问: (1 1)每条指令执行后,)每条指令执行后,AXAX 寄存器的内容是什么?(寄存器的内容是什么?(2 2)每条指令执)每条指令执行后,行后,CFCF,SFSF 及及 ZFZF 的值分别是什么?(的值分别是什么?(3 3)程序运行结束后,)程序运行结束后,AXAX 及及 DXDX寄存器的值为多少?寄存器的值为多少?答: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,4M

30、ULL CX(AX)=8D00H, CF=0,SF=1,ZF=0INT20H结束后,(DX)=0000H, (AX)=8000H9. 9.试分析下列程序段:试分析下列程序段:ADDADDAX, BXAX, BXJNCJNCL2L2SUBSUBAX, BXAX, BXJNCJNCL3L3JMPJMPSHORTL5SHORTL5如果如果 AXAX,BXBX 的内容给定如下:的内容给定如下:AXAXBXBX(1) 14C6H(1) 14C6H80DCH80DCH(2) B568H(2) B568H54B7H54B7H问该程序在上述情况下执行后,程序转向何处。问该程序在上述情况下执行后,程序转向何处。

31、答: (1)转到 L2 处(2)转到 L3 处习题习题 4 41 1下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。图。V VAR1 DB 10AR1 DB 10,2 2V VAR2 DW 5 DUPAR2 DW 5 DUP(?)(?) ,0 0V VAR3 DBAR3 DB HOW ARE YOUHOW ARE YOU? ,3 DUP3 DUP(1 1,2 2)V VAR4 DD -1AR4 DD -1,1 1,0 0答:字节空间:VAR1:2;VAR2:12;VAR3:13;VAR4:8。存储空间的分配

32、图:2 2 假定假定 V VAR1AR1 和和 V VAR2AR2 为字变量,为字变量,LABLAB 为标号,为标号,试指出下列指令的错误之处。试指出下列指令的错误之处。(1 1)ADD VADD VAR1AR1,V VAR2AR2(3 3)JMPJMPLABCXLABCX(2 2)SUB ALSUB AL,V VAR1AR1(4 4)JNZJNZV VAR1AR1(6 6)SHL ALSHL AL, 4 4(5 5) MOV 1000HMOV 1000H,100100答:(1) 在算术运算指令中,两个操作数不能同时为存储器寻址方式(2) AL 为字节,VAR1 为字变量,字长不相等;(3)

33、错误 1:寄存器相对寻址方式,只能使用基址或变址寄存器,不能使用CX 寄存器。错误 2:汇编格式错误,无法判段是段内转移还是段间转移。(4) 转向地址应为标号,不能是变量;(5) 目的操作数的类型不确定;(6) SHL 指令中,当所移位数超过 1 时,必须用 CL 取代所移位数。3 3对于下面的符号定义,指出下列指令的错误。对于下面的符号定义,指出下列指令的错误。A1 DB ?A2 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

34、为字变量,类型不一致;(3)A1 和 A2 同为存储器寻址方式,不符合语法规则;(4)K1 重新赋值前,必须用 PURGE 释放。4 4数据定义语句如下所示数据定义语句如下所示: :FIRST DB 90HFIRST DB 90H,5FH5FH,6EH6EH,69H69HSECOND DB 5 DUP(?)SECOND DB 5 DUP(?)THIRD DB 5 DUP(?)THIRD DB 5 DUP(?)FORTH DB 4 DUP (?)FORTH DB 4 DUP (?)自自 FIRSTFIRST 单元开始存放的是一个四字节的十六进制数单元开始存放的是一个四字节的十六进制数( (低位字

35、节在前低位字节在前), ),要求要求: :编一段程序将这个数左移两位后存放到自编一段程序将这个数左移两位后存放到自 SECONDSECOND 开始的单元开始的单元, ,右移两位后存右移两位后存放到自放到自 THIRDTHIRD 开始的单元开始的单元, ,求补后放到求补后放到 FORTHFORTH 开始的单元。开始的单元。( (注意保留移出部注意保留移出部分分) )答:DATA SEGMENTFIRSTDB 90H,5FH,6EH,69HSECONDDB 5 DUP(?)THIRDDB 5 DUP(?)FORTHDB 4 DUP (?)DATA ENDSCODE SEGMENTASSUME CS

36、: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 位数据MOVDI+4 ,DL;将移出的高 2 位数据放入 SECOND 中的最高

37、单元中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 位LEASI,FIRSTLEADI,THIRDMOVCX,2CLCM

38、OV 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 中的最低单元中RORDX, CL;将低位数据不带进位循环左移两位,即AX 的高 2 位在 AL 的低 2 位ANDD

39、H,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;AX=5F90H 为低十六位数据INC SIINC SIMOVDX,WORDPTRSI; DX=

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

41、的是否一致。若全对,则将 ALAL 置置 7EH;7EH; 只只要有错,则将要有错,则将 ALAL 置置 81H81H。答:DATA SEGMENTDA1DB55HCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,4000HMOVDS,AXMOVCX,0C000HMOVBX,0000HMOVAH,55HNEXT1:MOVbyte ptrBX,AHINCBXLOOPNEXT1MOVBX,0000HMOVCX,0C000HMOVAL,81HNEXT2:MOVAH, BXCMPAH,55HJNZEXITINCBXLOOPNEXT2MOVAL,7EHEXIT:MO

42、VAH,4CHINT21HCODEENDSENDSTART6. 6. 在当前数据段在当前数据段 4000H4000H 开始的开始的 128128 个单元中存放一组数据,个单元中存放一组数据, 试编程序将它们顺试编程序将它们顺序搬移到序搬移到 A000HA000H 开始的顺序开始的顺序 128128 个单元中,并将两个数据块逐个单元进行个单元中,并将两个数据块逐个单元进行比较比较; ; 若有错将若有错将 BLBL 置置 00H;00H; 全对则将全对则将 BLBL 置置 FFHFFH,试编程序。,试编程序。答:DATASEGMENTORG400HDA1DB128 DUP(?)ORG0A00HDA

43、2DB128 DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOVDS,AXLEASI,DA1LEADI,DA2MOVCX,128AGAIN:MOVAL,SIINCSIINCDILOOPAGAINLEASI, DA1LEADI, DA2MOVCX,128NEXT:MOVAL,SIMOVBL,DICMPAL,BLJNZERRORINCSIINCDIMOVBL,0FFHLOOPNEXTJMPEXITERROR: MOVBL,00HEXIT:MOVAH,4CHINT 21HCODEENDSENDSTAR

44、T7. 7. 设变量单元设变量单元 A A、B B、C C 存放有存放有 3 3 个数,若个数,若 3 3 个数都不为零,则求个数都不为零,则求 3 3 个数的和,个数的和,存放在存放在 D D 中中; ; 若有一个为零,则将其余两个也清零,试编写程序。若有一个为零,则将其余两个也清零,试编写程序。答:DATASEGMENTADB?BDB?CDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART: MOVAX,DATAMOVDS,AXCMPA,00HJNZLP1MOVB,0MOVC,0JMPLP4LP1:CMPB,00HJNZLP2MOVA,0MOVC

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

46、MENTBUFFDB100 DUP(?)DA1DB(?)LENGTHDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART: MOV AX,DATAMOVDS,AXMOVSI,0MOVAL,DA1MOVCX,100FIND0: CMPBUFFSI,ALJZEXITINCSILOOPFIND0MOVDI,99MOVSI,0COMPARE: CMPBUFFDI,ALJGINSERTMOVBL,BUFFDIMOVBUFFDI+1,BLDECDICMPDI,SIJNLCOMPAREJMPEXITINSERT:MOVBUFFDI+1,ALMOVLENGTH ,

47、101EXIT:MOVAH,4CHINT21HCODEENDSENDSTART9. 9. 内存中以内存中以 FIRSTFIRST和和SECONDSECOND开始的单元中分别存放着两个开始的单元中分别存放着两个 1616位组合的十进位组合的十进制制(BCD(BCD 码码) )数数, ,低位在前。低位在前。 编程序求这两个数的组合的十进制和编程序求这两个数的组合的十进制和, ,并存到以并存到以 THIRDTHIRD开始的单元。开始的单元。答:DATA SEGMENTFIRSTDD34341212HSECONDDD78785656HTHIRDDB?,?,?,?DATAENDSCODESEGMENTA

48、SSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,FIRSTLEADI,SECONDLEABX,THIRDMOVCX,4CLCAGAIN:MOVAL,BYTE PTRSIMOVDL,BYTE PTRDIADCAL,DLDAAMOVBYTE PTRBX,ALINCSIINCDIINCBXLOOPAGAINJCAAMOVBYTE PTRBX,0JMPEXITAA:EXIT:MOVBYTEPTRBX,1MOVAH,4CHINT 21HCODEENDSENDSTART10.10. 编写一段程序,接收从键盘输入的编写一段程序,接收从键盘输入的 1010

49、个数,输入回车符表示结束,然后将个数,输入回车符表示结束,然后将这些数加密后存于这些数加密后存于 BUFFBUFF 缓冲区中。加密表如下缓冲区中。加密表如下: :输入数字输入数字: 0: 0,1 1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9;9; 密码数字密码数字: 7: 7,5 5,9 9,1 1,3 3,6 6,8 8,0 0,2 2,4 4。答:DATASEGMENTMITABDB7591368024CONTEQU$-MITABBUFFDB10 DUP (?),$YUANWENDB10 DUP (?),$DATAENDSCODESEGMENTASSUME CSCODE,

50、DSDATASTART:MOVAX,DATAMOVDS,AXMOVSI,0MOVCX,CONTINPUT:MOVAH,1INT21HCMPAL,13JZEXITANDAL,0FHMOVYUANWENSI ,ALINCSILOOPINPUTEXIT :LEABX,MITABMOVCX,SIMOVSI,0JIAMI:MOVAL,YUANWENSIXLATMITABMOVBUFFSI,ALINCSILOOPJIAMIMOVAH,4CHINT21HCODEENDSENDSTART11.11.试编程序,统计由试编程序,统计由 40000H40000H 开始的开始的 16K16K 个单元中所存放的字符“个

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

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

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

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