微机原理与接口技术习题答案4(1)

合集下载

微机原理与接口技术习题答案

微机原理与接口技术习题答案

01-01 什么是冯.诺依曼机?(PP7)答:微型计算机的操作过程采用的是程序存储原理,这是由数学家冯.诺依曼(Jone Von Neumen)首先提出的,因此计算机常常称为冯.诺依曼机。

程序存储原理指出:用机器码指令排出的程序在执行前,首先存储于存储器中,存储器既存储程序又存储数据。

然后CPU逐条地从存储器中逐次取出一条条指令码,把指令码变成控制信号序列,控制信号发向有关的部件,控制完成指令规定的操作。

即MPU逐条地从内存储器中取出程序中的指令并执行指令规定的操作。

01-02 微处理器,微型计算机,微型计算机系统有什么联系与区别?(PP4~5)答:微处理器主要由运算器、控制器、寄存器阵列和片内总线组成;微型计算机主要由微处理器、内存储器、I/O接口电路和总线组成;微型计算机系统由微型计算机、I/O设备和各种软件组成。

微处理器不能构成独立的工作系统,它不能独立地执行程序;微型计算机是构成独立工作系统的最小配置;微机系统是用户使用计算机的基本配置。

01-04 画出微机系统框图。

(PP7)01-12 将下列十进制数转换为8位有符号二进制数。

(1)+32 (2)-12解(1):[+32]原=0010,0000B,[+32]反=0010,0000B,[+32]补=0010,0000B解(2):[-12]原=1000,1100B,[-12]反=1111,0011B,[-12]补=1111,0100B01-14 将下列二进制数转换为有符号十进制数。

(1)1000,0000B (3)1001,0010B解(1):查编码表1000,0000B=-128D解(3):1001,0010B取反+1=11101101+1=11101110B=-110D02-01 8086 CPU内部由哪两部分组成?他们的主要功能是什么?(P22~24)答:8086 CPU由总线接口部件BIU和指令执行部件EU组成。

BIU的功能:形成地址、取指令、指令排队、读/写OPR和总线控制。

微机原理与接口技术(第四版)课后习题答案 (1)培训讲学

微机原理与接口技术(第四版)课后习题答案 (1)培训讲学

微机原理与接口技术(第四版)课后习题答案(1)第1章微型计算机系统〔习题1.1〕简答题(2)总线信号分成哪三组信号?(3)PC机主存采用DRAM组成还是SRAM组成?(5)ROM-BIOS是什么?(6)中断是什么?(9)处理器的“取指-译码-执行周期”是指什么?〔解答〕②总线信号分成三组,分别是数据总线、地址总线和控制总线。

③ PC机主存采用DRAM组成。

⑤ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。

⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。

⑨指令的处理过程。

处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。

〔习题1.3〕填空题(2)Intel 8086支持___________容量主存空间,80486支持___________容量主存空间。

(3)二进制16位共有___________个编码组合,如果一位对应处理器一个地址信号,16位地址信号共能寻址___________容量主存空间。

(9)最初由公司采用Intel 8088处理器和()操作系统推出PC机。

② 1MB,4GB③ 216,64KB(9)IBM,DOS〔习题1.4〕说明微型计算机系统的硬件组成及各部分作用。

〔解答〕CPU:CPU也称处理器,是微机的核心。

它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。

处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。

存储器:存储器是存放程序和数据的部件。

外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。

《微机原理与接口技术》 洪永强习题答案

《微机原理与接口技术》 洪永强习题答案

《微机原理与接口技术》—习题及参考答案与洪永强编著的教材配套使用2008年9月2日目录第 1 章微型计算机概述 (3)第 2 章微处理器 (4)第 3 章寻址方式和指令系统 (7)第 4 章汇编语言程序设计 (12)第 5 章输入输出接口 (15)第 6 章存储器 (16)第7 章中断系统 (18)第8 章计数器/定时器与DMA控制器 (24)第9 章并行接口与串行接口 (26)第10 章总线 (30)第11 章模拟量输入/输出通道接口 (31)第12 章人机交互设备及其接口 (33)0.1下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。

(1) (-85)+76 (2) 85+(-76) (3) 85-76(4) 85-(-76) (5) (-85)-76 (6) -85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=01010101B-01001100B=01010101B+10110100B=00001001B=09H;CF=0;OF=0(4) 85-(-76)=01010101B-10110100B=01010101B+01001100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=10101011B-01001100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=10101011B-10110100B=10101011B+01001100B=11110111B=0F7H;CF=0;OF=0第 1 章微型计算机概述1.1微型计算机的发展经历了哪几个时代?每个时代有哪些主要特点?1.2简述Pentium4 微处理器的处理能力。

微机原理与接口技术课后习题答案(详细完全版).

微机原理与接口技术课后习题答案(详细完全版).

第一章1.1 解:五代,详细见书1.2 解:微型计算机:以大规模、超大规模集成电路为主要部件,以集成了计算机主要部件——控制器和运算器的微处理器为核心,所构造出的计算机系统 。

PC机:PC(Personal Computer)机就是面向个人单独使用的一类微机 。

单片机:用于控制的微处理器芯片,内部除CPU外还集成了计算机的其他一些主要部件,如:ROM、RAM、定时器、并行接口、串行接口,有的芯片还集成了A/D、D/A转换电路等。

数字信号处理器DSP:主要面向大流量数字信号的实时处理,在宿主系统中充当数据处理中心,在网络通信、多媒体应用等领域正得到越来越多的应用1.3 解:微机主要有存储器、I/O设备和I/O接口、CPU、系统总线、操作系统和应用软件组成,各部分功能如下:CPU:统一协调和控制系统中的各个部件系统总线:传送信息存储器:存放程序和数据I/O设备:实现微机的输入输出功能I/O接口:I/O设备与CPU的桥梁操作系统:管理系统所有的软硬件资源1.4 解:系统总线:传递信息的一组公用导线,CPU通过它们与存储器和I/O设备进行信息交换 。

好处:组态灵活、扩展方便三组信号线:数据总线、地址总线和控制总线 。

其使用特点是:在某一时刻,只能由一个总线主控设备来控制系统总线,只能有一个发送者向总线发送信号;但可以有多个设备从总线上同时获得信号。

1.5解:(1)用于数值计算、数据处理及信息管理方向。

采用通用微机,要求有较快的工作速度、较高的运算精度、较大的内存容量和较完备的输入输出设备,为用户提供方便友好的操作界面和简便快捷的维护、扩充手段。

(2)用于过程控制及嵌人应用方向。

采用控制类微机,要求能抵抗各种干扰、适应现场的恶劣环境、确保长时间稳定地工作,要求其实时性要好、强调其体积要小、便携式应用强调其省电。

1.6 解:11.7 解:I/O通道:位于CPU和设备控制器之间,其目的是承担一些原来由CPU处理的I/O任务,从而把CPU从繁杂的I/O任务中解脱出来。

《微机原理与接口技术》参考答案完整版

《微机原理与接口技术》参考答案完整版

《微机原理与接口技术》习题参考答案习题21.为何说8086CPU是16位CPU?答:16位指的是8086CPU的字长,而字长一般来说和运算器、寄存器、总线宽度一致。

因为8086CPU的内部寄存器、内部运算部件以及内部操作都是按16位设计的,这决定了它的字长为16位。

2.8086CPU由哪两个单元组成?其中,指令队列在哪个单元中,有何作用?答:总线接口单元(Bus Interface Unit,BIU)和执行单元(Execution Unit,EU)。

指令队列在BIU中。

它的作用是当EU在执行指令时,空闲的BIU可以从内存读取后续指令到指令队列,这样就可以将取指令工作和执行指令工作重叠进行,从而提高CPU的工作效率,加快指令的执行速度。

3.8086CPU中8位寄存器和16位寄存器是什么关系?答:8086的通用寄存器包括数据寄存器、指针寄存器和变址寄存器。

其中数据寄存器包含AX、BX、CX、DX四个16位寄存器,但他们每个都可以分开作为两个单独的8位寄存器使用。

8086的指针寄存器和变址寄存器不可分割为8位寄存器。

4.8086CPU中的IP寄存器有何用途?答:IP寄存器是指令指针寄存器,用来存放下一条要执行的指令在代码段中的偏移地址。

在程序运行过程中,IP寄存器始终指向下一条指令的首地址,与CS寄存器联合确定下一条指令的物理地址。

8086就是通过IP寄存器来控制指令序列的执行流程。

5.在标志寄存器中,用于反映运算结果属性的标志位有哪些?它们每一位所表示的含义是什么?答:有CF、PF、AF、ZF、SF、OF。

它们的含义如下:CF:进位标志。

它记录运算时从最高有效位产生的进位值或结果值。

最高有效位有进位或有借位时CF=1,否则CF=0。

PF:奇偶标志。

它记录运算结果的奇偶检验条件。

当结果操作数中“1”的个数为偶数时PF=1,否则PF=0。

AF:辅助进位标志。

在字节运算时,由低半字节(字节的低4位)向高半字节有进位或借位时,AF=1,否则AF=0。

《微型计算机原理与接口技术》(第三版)习题答案

《微型计算机原理与接口技术》(第三版)习题答案

《微机原理与接口技术》习题解答习题11.1 冯·诺依曼型计算机的设计方案有哪些特点?【解答】冯·诺依曼型计算机的设计方案是“存储程序”和“程序控制”,有以下5方面特点:(1)用二进制数表示数据和指令;(2)指令和数据存储在内部存储器中,按顺序自动依次执行指令;(3)由运算器、控制器、存储器、输入设备和输出设备组成基本硬件系统;(4)由控制器来控制程序和数据的存取及程序的执行;(5)以运算器为核心。

1.2 微处理器和微型计算机的发展经历了哪些阶段?各典型芯片具备哪些特点?【解答】经历了6代演变,各典型芯片的特点如表1-1所示。

表1-1 微处理器的发展及典型芯片的特点1.3 微型计算机的特点和主要性能指标有那些?【解答】除具有运算速度快、计算精度高、有记忆能力和逻辑判断能力、可自动连续工作等基本特点以外,还具有功能强、可靠性高、价格低廉、结构灵活、适应性强、体积小、重量轻、功耗低、使用和维护方便等。

微型计算机的性能指标与系统结构、指令系统、硬件组成、外部设备以及软件配备等有关。

常用的微型计算机性能指标主要有:字长、主频、内存容量、指令数、基本指令执行时间、可靠性、兼容性、性能价格比等。

21.4 常见的微型计算机硬件结构由哪些部分组成?各部分的主要功能和特点是什么?【解答】微型计算机硬件一般由微处理器、内存储器、外存储器、系统总线、接口电路、输入/输出设备等部件组成。

主要组成部件的功能和特点分析如下:(1)微处理器:是微型计算机的核心部件,由运算单元ALU、控制单元、寄存器组以及总线接口部件等组成,其功能是负责统一协调、管理和控制系统中的各个部件有机地工作。

(2)内存储器:用来存放计算机工作过程中需要的操作数据和程序。

可分为随机存储器RAM和只读存储器ROM。

RAM存放当前参与运行的各种程序和数据,特点是信息可读可写,存取方便,但信息断电后会丢失;ROM用于存放各种固定的程序和数据,特点是信息固定不变,关机后原存储的信息不会丢失。

[VIP专享]微机原理与接口技术课后习题答案_清华大学出版社

微机原理与接口技术课后部分习题参考答案第一章2. 第3项任务,状态标志位的状态决定转移方向。

3. 程序存储是将要执行的程序的全部指令存储到存储器中,程序控制指程序开始执行后,通过指令流控制数据或计算机,完成设定的任务。

4. 分BIU 总线接口部件和EI执行部件两大部件,其中总线接口部件BIU负责取指令和数据,执行部件EI负责执行指令及运算。

在执行一条指令的同时可以取下一条指令,重叠运行,速度快。

5. 有6个状态标志,分别为进位标志CF、溢出标志OF、零标志ZF、奇偶标志PF、负标志SF、辅助进位标志AF。

3个控制标志分别为中断允许标志IF、单步标志TF、方向标志DF。

标志位的内容可以通过标志位操作指令来操作,例如CLC指令清除进位位,即使CF=0,STC指令使CF=1,CLI指令使IF=0,禁止中断,STI指令使IF=1,允许中断。

还可以通过LAHF指令取来标识寄存器的内容修改后用SAHF指令送回去。

也可以用PUSHF/POPF指令来修改标志寄存器的内容。

6. 实模式下分段靠4个段寄存器实现。

段寄存器中的值就是段地址,当偏移地址为0时的段地址+偏移地址就是该段的起始地址。

物理地址是由段地址左移4位后与偏移地址相加形成的20位地址。

7. 说法不一定正确。

对顺序执行指令的计算机是对的。

对重叠或流水线的计算机就不对了。

例如对8086CPU,由于采用了取指令与执行指令的一次重叠,尽管执行一条指令的总时间并没有变化,但连续执行n条指令时,总的时间会大大缩短,可以简单的比喻成总时间为原时间的二分之一,快了一倍。

8. 引入流水线后,执行一条指令的总时间并没有变化。

9. 高速缓存的目的是提高存储器的速度,进而提高了CPU的速度。

虚拟存储器的目的是为了给程序员或程序一个大的存储或运行空间。

10。

8086采用总线接口部件BIU与执行部件EU分开提高了速度,286将8086的BIU进一步分成3个部件,提高了并行性。

386在286基础上进一步增加成6个逻辑部件,实现多条指令重叠,进一步提高了速度,486采用硬组合逻辑控制器,同时采用内嵌高速缓存,提高速度。

《微机原理与接口技术》参考答案

《微机原理与接口技术》习题参考答案习题21. 为何说8086CPU是16位CPU?答:16位指的是8086CPU的字长,而字长一般来说和运算器、寄存器、总线宽度一致。

因为8086CPU 的内部寄存器、内部运算部件以及内部操作都是按16位设计的,这决定了它的字长为16位。

2. 8086CPU由哪两个单元组成?其中,指令队列在哪个单元中,有何作用?答:总线接口单元(Bus Interface Unit,BIU)和执行单元(Execution Unit,EU)。

指令队列在BIU 中。

它的作用是当EU在执行指令时,空闲的BIU可以从内存读取后续指令到指令队列,这样就可以将取指令工作和执行指令工作重叠进行,从而提高CPU的工作效率,加快指令的执行速度。

3. 8086CPU中8位寄存器和16位寄存器是什么关系?答:8086的通用寄存器包括数据寄存器、指针寄存器和变址寄存器。

其中数据寄存器包含AX、BX、CX、DX四个16位寄存器,但他们每个都可以分开作为两个单独的8位寄存器使用。

8086的指针寄存器和变址寄存器不可分割为8位寄存器。

4. 8086CPU中的IP寄存器有何用途?答:IP寄存器是指令指针寄存器,用来存放下一条要执行的指令在代码段中的偏移地址。

在程序运行过程中,IP寄存器始终指向下一条指令的首地址,与CS寄存器联合确定下一条指令的物理地址。

8086就是通过IP寄存器来控制指令序列的执行流程。

5. 在标志寄存器中,用于反映运算结果属性的标志位有哪些?它们每一位所表示的含义是什么?答:有CF、PF、AF、ZF、SF、OF。

它们的含义如下:CF:进位标志。

它记录运算时从最高有效位产生的进位值或结果值。

最高有效位有进位或有借位时CF=1,否则CF=0。

PF:奇偶标志。

它记录运算结果的奇偶检验条件。

当结果操作数中“1”的个数为偶数时PF=1,否则PF=0。

AF:辅助进位标志。

在字节运算时,由低半字节(字节的低4位)向高半字节有进位或借位时,AF=1,否则AF=0。

微机原理与接口技术 习题解答王玉良

第1章习题参考解答 1. 1.填空和选择(1)运算器和控制器合在一起称为中央处理器,中央处理器和存储器、I/O接口、总线及电源合在一起被称为主机。

(2)计算机的软件一般分为两大类:一类叫系统软件软件,一类叫应用软件软件。

数据库管理系统属于系统软件软件,计算机辅助教学软件属于应用软件软件。

(3)用来管理计算机系统的资源并调度用户的作业程序的软件称为操作系统;负责将高级语言的源程序翻译成目的程序的软件称为编译程序。

(4)计算机系统中的存储器分为外存储器和内存储器。

在CPU执行指令时,必须将指令存放在内存储器中。

(5)计算机存储数据的最小单位是字节。

1 KB容量的存储器能够存储1024个这样的基本单位。

(6)在计算机系统中,多个系统部件之间信息传送的公共通道称为总线。

就其传送的信息的性质而言,在公共通道上传送的信息包括控制和数据信息。

(7)采用2的补码形式表示的8位二进制整数,其可表示的数的范围为( A )。

A.-128~+127B.-2-127~+2-127C.-2-128~2+127D.-127~+128(8)在定点数运算中产生溢出的原因是( C )。

A.运算过程中最高位产生了进位或借位 B.参加运算的操作数超出了机器的表示范围C.运算的结果超出了结果单元的表示范围 D.寄存器的位数太少,不得不舍弃最低有效位(9)下列逻辑部件中,不属于运算器的是( A )。

A.指令寄存器 C.累加器2.说明微型计算机的基本硬件构成和各部分功能。

微型计算机硬件一般由微处理器、内存储器、外存储器、系统总线、接口电路、输入/输出设备等部件组成。

主要组成部件的功能和特点分析如下:(1)微处理器:是微型计算机的核心部件,由运算单元ALU、控制单元、寄存器组以及总线接口部件等组成,其功能是负责统一协调、管理和控制系统中的各个部件有机地工作。

(2)内存储器:用来存放计算机工作过程中需要的操作数据和程序。

可分为随机存储器RAM和只读存储器ROM。

微机原理与接口技术(楼顺天编着)课后习题答案

第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’, ’word’, ’WORD’;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。

解:var1 DW 4512H,4512,-1,100/3,10H,65530var2 DB ’BYTE’,’word’,’WORD’buf1 DB 100 DUP(?)buf2 DB 7 DUP(5 DUP(55H),10 DUP(240))var3 DB LENGTH buf1pointer DW var1,buf1 (或者pointer DW OFFSET var1,OFFSET buf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1 DB 12,-12,20/6,4 DUP(0,55H)var2 DB ‘Assemble’var3 DW ‘AB’, ‘cd’, ‘E’var4 DW var2var5 DD var2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1, VAR2为字变量, L1为标号):(1)MOV SI,100 (2)MOV BX,VAR1[SI](3)MOV AX, [BX] (4)MOV AL, [DX](5)MOV BP, AL (6)MOV VAR1, VAR2(7)MOV CS, AX (8)MOV DS, 0100H(9)MOV [BX][SI], 1 (10)MOV AX, VAR1+VAR2(11)ADD AX, LENGTH VAR1 (12)OR BL, TYPE VAR2(13)SUB [DI], 78H (14)MOVS VAR1, VAR2(15)PUSH 100H (16)POP CS(17)XCHG AX, ES (18)MOV DS, CS(19)JMP L1+5 (20)DIV AX, 10(21)SHL BL, 2 (22)MOV AL, 15+23(23)MUL CX (24)XCHG CL, [SI](25)ADC CS:[0100], AH (26)SBB VAR1-5,154解:(1)MOV SI,100 正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4章 汇编语言程序设计 1. 已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。 解:BUF DB "BONJOUR_BELLE" BUFR DB 100 DUP(?)

MOV CX, N LEA SI, BUF LEA DI, BUFR ADD DI,CX DEC DI L1: MOV AL,[SI] MOV [DI],AL INC SI DEC DI LOOP L1

2. 利用移位、传送和相加指令实现AX的内容扩大10倍。 解:将扩大后的结果放在DX:AX中,注意到10×AX=8×AX+2×AX。 XOR DX,DX SHL AX, 1 RCL DX, 1 MOV BX,AX MOV CX,DX SHL AX, 1 RCL DX, 1 SHL AX, 1 RCL DX, 1 ADD AX, BX ADC DX, CX 3. 在缓冲区VAR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列;如果VAR中保存的为有符号数,则再编写程序实现将其按递减关系排列。 解:VAR DW 1236,-432,3900 XOR SI,,SI MOV AX,VAR[SI] CMP AX, VAR[SI+2] JAE L1 XCHG AX, VAR[SI+2] L1: CMP AX, VAR[SI+4] JAE L2 XCHG AX, VAR[SI+4] L2: MOV VAR[SI], AX MOV AX,VAR[SI+2] CMP AX, VAR[SI+4] JAE L3 XCHG AX, VAR[SI+4] L3: MOV VAR[SI+2], AX 4. 编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如(AL)=01100101B,(BL)=11011010B,则得到的(DX)=10110110 10011001B。 解:利用移位指令完成。 XOR DX,DX MOV CX,8 L1: SHR AL,1 RCR DX,1 SHR BL,1 RCR DX,1 LOOP L1 5. 在变量VAR1和VAR2中分别保存有两个字节型的正整数,编写完整的汇编语言程序实现: (1)当两数中有一个奇数时,将奇数存入VAR1,偶数存入VAR2; (2)当两数均为奇数时,两个变量的内容不变; (3)当两数均为偶数时,两数缩小一倍后存入原处。 解:当VAR1为奇数时,不论VAR2的奇偶性,这两个单元的内容均不变;只有当VAR1为偶数时,如果VAR2为奇数,则VAR1与VAR2内容交换;如果VAR2为偶数,则两数缩小一倍后存入原处。 DATA SEGMENT VAR1 DB 28 VAR2 DB 36 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA START: MOV AX, DATA MOV DS,AX MOV ES, AX MOV AL,VAR1 MOV BL,VAR2 TEST AL,1 JZ EVEN1 JMP OVER EVEN1: TEST BL,1 JZ EVEN2 MOV VAR1,BL MOV VAR2,AL JMP OVER EVEN2: SHR AL,1 MOV VAR1,AL SHR BL,1 MOV VAR2,BL OVER: MOV AH,4CH MOV AL,0 INT 21H CODE ENDS END START 6. 已知在字变量VAR1、VAR2和VAR3中保存有3个相同的代码,但有一个错码,编写程序段找出这个错码,并将它送到AX,其地址送SI;如果3个代码都相同,则在AX中置-1标志。 解:在数据段中定义: VAR1 DW 5A34H VAR2 DW 5A35H VAR3 DW 3A34H 在代码段中编写程序段: MOV AX,-1 MOV BX,VAR1 CMP BX,VAR2 JZ L2 CMP BX,VAR3 JZ L1 MOV AX,BX LEA SI,VAR1 JMP OVER L1: MOV AX,VAR2 LEA SI,VAR2 JMP OVER L2: CMP BX,VAR3 JZ OVER MOV AX,VAR3 LEA SI,VAR3 OVER: 7. 分析下列程序段的功能: MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL 解:程序段完成DX:AX组成的32位无符号数左移4位,低位补零(也即除以16)。 8. 下列程序段执行后,求BX寄存器的内容: MOV CL,3 MOV BX,0B7H ROL BX,1 ROR BX,CL 解:实际上完成BX内容循环右移2位,因此,BX寄存器的内容为C02DH。 9. 下列程序段执行后,求BX寄存器的内容: MOV CL,5 MOV BX,7D5CH SHR BX,CL 解:完成BX内容逻辑右移5位,因此,BX寄存器的内容为03EAH。 10. 将BUFFERS中N个字按相反顺序传递到BUFFERT中。 解: LEA SI,BUFFERS LEA DI,BUFFERT MOV CX,N ADD DI,N ADD DI,N SUB DI,2 L1: MOV AX,[SI] MOV [DI],AX ADD SI,2 SUB DI,2 LOOP L1 11. 数组ARRAY中存放有一组字型数据,前两个字节存放数据长度(5的倍数)。为给这个数组中的数据进行加密保护,每5个数据取出一个数据进行加密处理:奇数位进行取反,偶数位不变,例如对数据0110 1100 1011 0001B加密后变成1100 0110 0001 1011B,编写加密程序encrpytion 和解密程序 unencrpytion 。 解:约定从第一个数据开始,每5个数据为一组,每组中的第一个数据采取加密/解密处理。由于加密算法采用的是取反操作,解密算法也采用取反操作,因此解密和解密算法是同一个程序。 ENCRPYTION PROC NEAR LEA SI,ARRAY XOR DX,DX MOV AX,[SI] MOV BX,5 DIV BX MOV CX, AX ADD SI, 2 L1: MOV AX, [SI] XOR AX,0AAAAH MOV [SI], AX ADD SI,10 LOOP L1 RET ENCRPYTION ENDP

13. 设BUF中存放有N个无符号数(或有符号数),编程实现求它们的最小值(存入AX)和最大值(存入DX)。 解:BUF存放有N个无符号数的程序如下: MOV CX,N-1 LEA SI,BUF MOV AX,[SI] MOV DX,AX ADD SI,2 L1: CMP AX,[SI] JBE NOCHG1 XCHG AX,[SI] NOCHG1: CMP DX,[SI] JAE NOCHG2 XCHG DX,[SI] NOCHG2: ADD SI,2 LOOP L1 如果BUF中存放的是有符号数,则只需要将程序中的两行内容修改: JBE NOCHG1 改成:JLE NOCHG1 JAE NOCHG2 改成:JGE NOCHG2 14. 设BUFFER中存放有N个无符号(第1个字节存放缓冲区的长度),编程实现将其中的0元素抹去,并更新其长度。 解:设BUFFER中存放的是字节型数据。采用双指针方法:SI为读指针,DI为写指针,从低地址开始,内存中读出一个字节,如果不为0,则写入内存;如果为0,则不进行写操作。 LEA SI, BUFFER XOR CX,CX MOV CL, [SI] INC SI MOV DI, SI XOR BH,BH XOR AL,AL L1: CMP [SI],AL JZ L2 MOV BL,[SI] MOV [DI],BL INC DI INC BH L2: INC SI LOOP L1 MOV BUFFER,BH 16. 编写一个子程序实现统计AL中1的个数,然后检测出字节型缓冲区BUF中0和1个数相等的元素个数。 解:统计AL中1的个数,只需将AL右移,移出的一位内容进行累加,子程序为: COUNTBYTE PROC NEAR PUSH AX PUSH CX

相关文档
最新文档