资源描述
微机原理与接口技术”习题解答计课2班黄晓杰第1章微型计算机系统习题1.1简答题(1)计算机字长(Word)指的是什么?(2)总线信号分成哪三组信号?(3)PC机主存采用DRAM组成还是SRAM组成?(4)Cache是什么意思?(5)ROM-BIOS 是什么?(6)中断是什么?(7)32位PC机主板的芯片组是什么?(8)教材中MASM是指什么?(9)处理器的“取指一译码一执行周期”是指什么?(10)本课程的主要内容属于计算机系统层次结构中哪个层 次?角翠答 处理器每个单位时间可以处理的二进制数据位数称计算 机字长。总线信号分成三组,分别是数据总线、地址总线和控制总 线。PC机主存采用DRAM组成。高速缓冲存储器Cache是处理器与主存之间速度很快但 容量较小的存储器。ROM-BIOS是“基本输入输出系统”,操作系统通过对 BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用 BIOS中的许多功能。中断是CPU正常执行程序的流程被某种原因打断、并暂 时停止,转向执行事先安排好的一段处理程序,待该处理程序结 束后仍返回被中断的指令继续执行的过程。主板芯片组是主板的核心部件,它提供主板上的关键逻辑 电路。MASM是微软开发的宏汇编程序。指令的处理过程。处理器的“取指一译码一执行周期”是 指处理器从主存储器读取指令(简称取指),翻译指令代码的功 能(简称译码),然后执行指令所规定的操作(简称执行)的过 程。机器语言层,即指令集结构。(学生很多认为是:汇编语言层。前4章主要涉及汇编语言,但本书还有很多处理器原理等内容)习题1.2判断题(1)软件与硬件的等价性原理说明软硬件在功能、性能和成 本等方面是等价的。(2)IA-64结构是IA-32结构的64位扩展,也就是Intel 64 结构。(3)8086的数据总线为16位,也就是说8086的数据总线 的个数、或说条数、位数是16o(4)微机主存只要使用RAM芯片就可以了。(5)处理器并不直接连接外设,而是通过I/O接口电路与外 设连接。(6)处理器是微机的控制中心,内部只包括5大功能部件的 控制器。(7)Windows的模拟DOS环境与控制台环境是一样的。(8)16位IBM PC/AT机采用ISA系统总线。(9)IA-32处理器吸取了 RISC技术特长。RISC是指复杂指 令集计算机。(10)处理器进行读操作,就是把数据从处理器内部读出传 送给主存或外设。角窣答错错对错对错错对错错习题1.3填空题(DCPU是英文 的缩写,中文译为,微型机采用 芯片构成CPUo(2)Intel 8086支持 容量主存空间,80486支持容量主存空间。(3)二进制16位共有 个编码组合,如果一位对应处理器一个地址信号,16位地址信号共能寻址_容量主存空间。(4)DOS主要支持两种可执行文件,它们的扩展名分别是 和。(5)英文缩写ISA常表示PC机工业标准结构(Industry Standard Architecture)总线,也表示指令集结构,后者的英文原 文是。(6)Windows的文件夹对应的专业术语是 o(7)Pentium系列处理器的多媒体指令有,SSE,SSE2和 类指令。(8)Pentium诏理器采用_位数据总线与主存相 连。(9)最初由 公司采用Intel 8088处理器和操作系统推出PC机。(10)当前32位PC机主要采用 总线连接I/O接口电路卡。解答 一Central Processing Unit,中央处理单元,处理器 1MB,4GB 216,64KBEXE,COMInstruction Set Architecture目录MMX,SSE364IBM,DOSPCI习题1.4说明微型计算机系统的硬件组成及各部分作用。角星答CPU:CPU也称处理器,是微机的核心。它采用大规模集成 电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即 寄存器)。处理器及其支持电路构成了微机系统的控制中心,对 系统的各个部件进行统一的协调和控制。存储器:存储器是存放程序和数据的部件。外部设备:外部设备是指可与微机进行交互的输入(Input 设备和输出(Output 设备,也称I/O设备。I/O设备通过I/O接 口与主机连接。总线:互连各个部件的共用通道,主要含数据总线、地址总 线和控制总线信号。习题1.5什么是通用微处理器、单片机(微控制器)、DSP 芯片、嵌入式系统?角窣答通用微处理器:适合较广的应用领域的微处理器,例如装在 PC机、笔记本电脑、工作站、服务器上的微处理器。单片机:是指通常用于控制领域的微处理器芯片,其内部除 CPU外还集成了计算机的其他一些主要部件,只需配上少量的 外部电路和设备,就可以构成具体的应用系统。DSP芯片:称数字信号处理器,也是一种微控制器,其更适 合处理高速的数字信号,内部集成有高速乘法器,能够进行快速 乘法和加法运算。嵌入式系统:利用微控制器、数字信号处理器或通用微处理 器,结合具体应用构成的控制系统。习题1.6综述Intel 80 x86系列处理器在指令集方面的发展。角翠答8086奠定了基本的16位指令集,80286提供了保护方式的各 种指令,80386将指令集全面提升为32位,80486融入了浮点数 据处理指令,奔腾系列陆续增加了多媒体指令MMX、SSE、SSE2 和SSE3,最新的奔腾4处理器还支持64位指令集。题外话:大家可以通过阅读相关资料、查询互联网获得更加 详细的发展情况。可以考虑组织成一篇或多篇论文。习题1.7区别如下概念:助记符 汇编语言 汇编语言程序 和汇编程序。角窣答助记符:人们采用便于记忆、并能描述指令功能的符号来表 示机器指令操作码,该符号称为指令助记符。汇编语言:用助记符表示的指令以及使用它们编写程序的规 则就形成汇编语言。汇编语言程序:用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序。汇编程序:汇编语言源程序要翻译成机器语言程序才可以由 处理器执行。这个翻译的过程称为“汇编”,完成汇编工作的程 序就是汇编程序(Assembler)。习题1.8区别如下概念:路径、绝对路径、相对路径、当前 目录。系统磁盘上存在某个可执行文件,但在DOS环境输入其 文件名却提示没有这个文件,是什么原因?角窣答路径:操作系统以目录形式管理磁盘上的文件,文件所在的 分区和目录就是该文件的路径。绝对路径:从根目录到文件所在目录的完整路径称为“绝对 路径”。是保证文件唯一性的标示方法。相对路径:从系统当前目录到文件所在目录的路径称为相对 路径。当前目录:用户当前所在的目录就是当前目录。指明的路径不正确,或者执行了另外一个同名的文件。习题1.9什么是摩尔定律?它能永久成立吗?角星答每18个月,集成电路的性能将提高一倍,而其价格将降低一 半。(1965年,Intel公司的创始人之一摩尔预言:集成电路上 的晶体管密度每年将翻倍。现在这个预言通常表达为:每隔18 个月硅片密度(晶体管容量)将翻倍;也常被表达为:每18个 月,集成电路的性能将提高一倍,而其价格将降低一半。)不能。由于电子器件的物理极限在悄然逼近,摩尔定律不会 永远持续。习题1.10冯诺依曼计算机的基本设计思想是什么?角窣答采用二进制形式表示数据和指令。指令由操作码和地址码组 成。将程序和数据存放在存储器中,计算机在工作时从存储器取 出指令加以执行,自动完成计算任务。这就是“存储程序”和“程 序控制”(简称存储程序控制)的概念。指令的执行是顺序的,即一般按照指令在存储器中存放的顺 序执行,程序分支由转移指令实现。计算机由存储器、运算器、控制器、输入设备和输出设备五大基本部件组成,并规定了 5部分的基本功能。习题1.11计算机系统通常划分为哪几个层次?普通计算机 用户和软件开发人员对计算机系统的认识一样吗?角星答最上层是用户层。第5层是高级语言层。第4层是汇编语言层。第3层是操作系统层。第2层是机器语言层。第1层是控制层。第。层是数字电路层。普通计算机用户和软件人员对计算机系统的认识并不一样。普通计算机用户看到的计算机,也就是我们最熟悉的计算机,属 于用户层,而软件人员看到的属于高级语言层或是汇编语言层。习题1.12什么是系列机和兼容机?你怎样理解计算机中的“兼容”特性?例如,你可以用PC机为例,谈谈你对软件兼容(或兼容性)的认识,说明为什么PC机具有如此强大的生命 力?角窣答系列机是指在一个厂家生产的具有相同计算机结构,但具有 不同组成和实现的一系列(Family 不同档次、不同型号的机器。兼容机是指不同厂家生产的具有相同计算机结构(不同的组 成和实现)的计算机。兼容是一个广泛的概念,包括软件兼容、硬件兼容、系统兼 容等。其中软件兼容是指同一个软件可以不加修改地运行于体系 结构相同的各档机器,结果一样但运行时间可能不同。软件兼容 可从机器性能和推出时间分成向上(向下)和向前(向后)兼容。例如32位PC机就陆续增加了对浮点处理指令、多媒体指令等 的支持。在保证向后兼容的前提下,不断改进其组成和实现,延 续计算机结构的生命,才使得PC机具有如此强大的生命力。习题1.13英特尔公司最新Intel 80 x86处理器是什么?请通 过查阅相关资料(如英特尔公司网站),说明其主要特点和采用 的新技术。角翠答酷睿2多核处理器。习题1.14说明高级语言、汇编语言、机器语言三者的区另打 谈谈你对汇编语言的认识。角窣答高级语言与具体的计算机硬件无关,其表达方式接近于所描 述的问题,易为人们接受和掌握,用高级语言编写程序要比低级 语言容易得多,并大大简化了程序的编制和调试,使编程效率得 到大幅度的提高。而汇编语言是为了便于理解与记忆,将机器指 令用助记符代替而形成的一种语言。汇编语言的语句通常与机器 指令对应,因此,汇编语言与具体的计算机有关,属于低级语言。它比机器语言直观,容易理解和记忆,用汇编语言编写的程序也 比机器语言易阅读、易排错。机器语言的每一条机器指令都是二 进制形式的指令代码,计算机硬件可以直接识别。高级语言程序 通常也需要翻译成汇编语言程序,再进一步翻译成机器语言代 码。习题1.15为了更好地进行编程实践,请进入Windows操作系统下的控 制台环境(或MS-DOS模拟环境),练习常用命令。第2章处理器结构习题2.1简答题(1)ALU是什么?(2)8086的取指为什么可以被称为指令预取?(3)Pentium的片上Cache采用统一结构还是分离结构?(4)堆栈的存取原则是什么?(5)标志寄存器主要保存哪方面的信息?(6)执行了一条加法指令后,发现ZF=1,说明结果是什么?(7)汇编语言中的标识符与高级语言的变量和常量名的组成 原则有本质的区别吗?(8)汇编语言的标识符大小写不敏感意味着什么?(9)汇编语言源程序文件中,END语句后的语句会被汇编 吗?(10)为什么将查找操作数的方法称为数据寻“址”方式?角窣答ALU是算术逻辑运算单元,负责处理器所能进行的各种 运算,主要是算术运算和逻辑运算。取指是指从主存取出指令代码通过总线传输到处理器内 部指令寄存器的过程。8086分成总线接口单元和指令执行单元,可以独立操作。在执行单元执行一条指令的同时,总线接口单元 可以读取下一条指令,等到执行时不需要进行取指了,所以称为 预取。Pentium采用分离的Cache结构,一个用做指令Cache,彳故Cache o 堆栈的存取原则是先进后出(也称为后进先出)操作方式存取数据。标志寄存器主要保存反映指令执行结果和控制指令执行 形式的有关状态。执行了一条加法指令后,发现ZF=1,表明运算结果为0。没有。汇编语言的标识符大小写不敏感,即表示字母大小写不 同、但表示同一个符号。不会。指令的操作数需要通过存储器地址或I/O地址,才能查找 到数据本身,故称数据寻址方式。习题2.2判断题(1)程序计数器PC或指令指针EIP寄存器属于通用寄存器。(2)处理器的指令译码是将指令代码翻译成它代表的功能的 过程,与数字电路的译码器是不同的概念。(3)EAX也被称为累加器,因为它使用最频繁。(4)处理器的传送指令MOV属于汇编语言的执行性语句。(5)汇编语言的语句由明显的4部分组成,不需要分隔符区 别。(6)80减90(80-90)需要借位,所以执行结束后,进位 标志CF=lo(7)MASM汇编语言的注释用分号开始,但不能用中文分 号。(8)IA-32处理器在实地址方式下,不能使用32位寄存器。(9)存储器寻址方式的操作数当然在主存了。(10)保护方式下,段基地址加偏移地址就是线性地址或物 理地址。角窣答错对对对错对对错对对习题23填空题(1)寄存器EDX是 位的,其中低16位的名称是,还可以分成两个8位的寄存器,其中D8D15部 分可以用名称 表示。(2)IA-32处理器在保护方式下,段寄存器是 位的。(3)逻辑地址由 和 两部分组成。代码段中下一条要执行的指令由CS和 寄存器指示,后者在实地址模型中起作用的仅有 寄存器部分。(4)进行8位二进制数加法:10111010+01101100,8位结 果是,标志PF=o(5)在实地址工作方式下,逻辑地址“7380H:400H”表示 的物理地址是,并且该段起始于 物理地址。(6)IA-32处理器有8个32位通用寄存器,其中EAX,,和EDX,可以分成16位和8位操作;还有另外4个是,,和(7)IA-32处理器复位后,首先进入是 工作方式。该工作方式分段最大不超过。(8)MASM要求汇编语言源程序文件的扩展名是,汇编产生扩展名为OBJ的文件被称为_文件,编写32位 Windows应用程序应选择 存储模型o(9)除外设数据外的数据寻址方式有3类,分别被称为 、和 O(10)用EBX做基地址指令,默认采用 段寄存器指向的数据段;如果采用BP,EBP或SP,ESP作为基地址指针,默认使用 段寄存器指向堆栈段。解答 32,DX,DH16段地址,偏移地址,EIP,IP 00100110,0 73C00H,73800H EBX,ECX,ESL EDL EBP,ESP实地址,64KBASM,目标模块,FLAT 立即数寻址、寄存器寻址和存储器寻址 DS,SS习题2.4 J处理器内部具有哪3个基本部分?8086分为哪两 大功能部件?其各自的主要功能是什么?解答处理器内部有ALU、寄存器和指令处理三个基本单元。8086有两大功能部件:总线接口单元和执行单元。总线接口单元:管理着8086与系统总线的接口,负责处理器 对存储器和外设进行访问。8086所有对外操作必须通过BIU和 这些总线进行。执行单元EU:负责指令译码、数据运算和指令执行。习题2.58086怎样实现了最简单的指令流水线?解答8086中,指令的读取是在BIU单元,而指令的执行是在EU 单元。因为BIU和EU两个单元相互独立、分别完成各自操作,所以可以并行操作。也就是说,在EU单元对一个指令进行译码 执行时,BIU单元可以同时对后续指令进行读取;这就是最简单 的指令流水线技术。习题2.6什么是标志?什么是IA-32处理器的状态标志、控制标志和系统标志?说明状态标志在标志寄存器EFLAGS的位置和含义。角窣答标志:用于反映指令执行结果或控制指令执行形式的一个或 多个二进制数位。例如,有些指令执行后会影响有关标志位;有 些指令的执行要利用相关标志。状态标志:用来记录程序运行结果的状态信息。控制标志:DF标志,控制字符串操作的地址方向。系统标志:用于控制处理器执行指令的方式。状态标志在标志寄存器EFLAGS中的位置和含义如下:31 11 10 987 6543210I 巫|SF|ZF|AF|PF|国习题27举例说明CF和OF标志的差异。角窣答进位标志CF表示无符号数运算结果是否超出范围,超出范 围后加上进位或借位,运算结果仍然正确;溢出标志OF表示有 符号数运算结果是否超出范围,如果超出范围,运算结果已经不 正确。例 1:3AH+7CH=B6H无符号数运算:58+124=182,范围内,无进位。有符号数运算:58+124=182,范围外,有溢出。例 2:AAH+7cH=26H无符号数运算:170+124=294,范围外,有进位。有符号数运算:86+124=28,范围内,无溢出。习题28什么是8086中的逻辑地址和物理地址?逻辑地址 如何转换成物理地址?请将如下逻辑地址用物理地址表达(均为 十六进制形式):FFFF:0 40:17 2000:4500 B821:4567角窣答物理地址:在处理器地址总线上输出的地址称为物理地址。每个存储单元有一个唯一的物理地址。逻辑地址:在处理器内部、程序员编程时采用逻辑地址,采 用“段地址:偏移地址“形式。某个存储单元可以有多个逻辑地 址,即处于不同起点的逻辑段中,但其物理地址是唯一的。逻辑地址转换成物理地址:逻辑地址由处理器在输出之前转 换为物理地址。将逻辑地址中的段地址左移二进制4位(对应 16进制是一位,即乘以16,加上偏移地址就得到20位物理地 址。FFFFH:0FFFF0H 40H:17H=00417H 2000H:4500H=24500H B821H:4567H=BC777H习题2.9IA-32处理器有哪三类基本段,各是什么用途?角窣答IA-32处理器有代码段、数据段、堆栈段三类基本段。代码段:存放程序的指令代码。程序的指令代码必须安排在 代码段,否则将无法正常执行。数据段:存放当前运行程序所用的数据。程序中的数据默认 是存放在数据段,也可以存放在其他逻辑段中。堆栈段:主存中堆栈所在的区域。程序使用的堆栈一定在堆 栈段。习题2.10什么是平展存储模型 段式存储模型和实地址存 储模型?角窣答平展存储模型下,对程序来说存储器是一个连续的地址空间,称为线性地址空间。程序需要的代码、数据和堆栈都包含在这个 地址空间中。段式存储模型下,对程序来说存储器由一组独立的地址空间 组成,独立的地址空间称为段。通常,代码、数据和堆栈位于分 开的段中。实地址存储模型是8086处理器的存储模型。它是段式存储模 型的特例,其线性地址空间最大为1MB容量,由最大为64KB 的多个段组成。习题2.11什么是实地址方式、保护方式和虚拟8086方式?它们分别使用什么存储模型?解答实地址方式:与8086具有相同的基本结构,只能寻址1MB 物理存储器空间,逻辑段最大不超过64KB;但可以使用32位 寄存器、32位操作数和32位寻址方式;相当于可以进行32位 处理的快速8086o实地址工作方式只能支持实地址存储模型。保护方式:具有强大的段页式存储管理和特权与保护能力,使用全部32条地址总线,可寻址4GB物理存储器。保护方式通 过描述符实现分段存储管理,每个逻辑段可达4GBO处理器工 作在保护方式时,可以使用平展或段式存储模型。虚拟8086方式:在保护方式下运行的类似实方式的运行环 境,只能在1MB存储空间下使用“16位段”。处理器工作在 虚拟8086方式时,只能使用实地址存储模型。习题2.12汇编语句有哪两种,每个语句由哪4个部分组成?角窣答汇编语句有两种:执行性语句(处理器指令)、说明性语句(伪指令)。每个语句有:标号、指令助记符、操作数或参数、注释4个 部分组成。习题2.13J汇编语言程序的开发有哪4个步骤,分别利用什 么程序完成、产生什么输出文件。角翠答汇编语言程序的开发有4个步骤:编辑:用文本编辑器形成一个以ASM为扩展名的源程序文 件。汇编:用汇编程序将ASM文件转换为OBJ模块文件。连接:用连接程序将一个或多个目标文件链接成一个EXE或 COM可执行文件。调试:用调试程序排除错误,生成正确的可执行文件。习题2.14J MASM汇编语言中,下面哪些是程序员可以使用 的正确的标识符。FFH,DS,Oxvab,Again,next,data,h_ascii,6364b,.exit,small解答FFH,Again,next,h_ascii习题2.15给出IA-32处理器的32位寻址方式和16位寻址 方式的组成公式,并说明各部分作用。角窣答32位存储器寻址方式的组成公式32位有效地址=基址寄存器+(变址寄存器义比例)+位 移量其中的4个组成部分是:基址寄存器任何8个32位通用寄存器之一;变址寄存器除ESP之外的任何32位通用寄存器之一;比例可以是1,2,4或8(因为操作数的长度可以是L2,4或8字节);位移量一可以是8或32位有符号值。16位存储器寻址方式的组成公式16位有效地址=基址寄存器+变址寄存器+位移量其中基址寄存器只能是BX或BP,变址寄存器只能是SI或DL位移量是8或16位有符号值习题2.16说明下列指令中源操作数的寻址方式?假设VARD 是一个双字变量。(1)mov edx,1234h(2)mov edx,vard(3)mov edx,ebx(4)mov edx,ebx(5)mov edx,ebx+1234h(6)mov edx,vardebx(7)mov edx,ebx+edi(8)mov edx,ebx+edi+1234h(9)mov edx,vardesi+edi(10)mov edx,ebp*4解答立即数直接寄存器寄存器间接寄存器相对寄存器相对基址变址相对基址变址相对基址变址带比例寻址习题2.17)使用本书配套的软件包(或者按照本书说明)创建MASM开发环境,通过编辑例题2-1和例题2-2程序、汇 编连接生成可执行程序和列表文件,掌握汇编语言的开发。第3章数据处理习题3.1简答题(1)使用二进制8位表达无符号整数,257有对应的编码吗?(2)字符“F”和数值46H作为MOV指令的源操作数有区 别吗?(3)为什么可以把指令“MOVAX,(34+67H)*3中的数值 表达式看成是常量?(4)数值500,能够作为字节变量的初值吗?(5)为什么说XCHGEDX,CX”是一条错误的指令?(6)都是获取偏移地址,为什么指令LEAEBXJESI”正 确,而指令“MOVEBX,OFFSETESI”就错误?(7)INC,DEC,NEG和NOT都是单操作数指令,这个操 作数应该是源操作数还是目的操作数?(8)大小写字母转换使用了什么规律?(9)乘除法运算针对无符号数和有符号数,有两种不同的指 令。只有一种指令的加减法如何区别无符号数和有符号数运算?(10)逻辑与运算为什么也称为逻辑乘?角翠答 没有。使用二进制8位表达无符号整数,257没有对应的 编码。字符的ASCII码就是数值46H,所以没有区别。汇编程序在汇编过程中对数值表达式计算,得到一个确定 的数值,故称数值表达式为常量。不能。数值500大于一个字节所能表达的数据量,所以不 能为字节变量赋值。源、目标寄存器位数不同,不能用该指令进行数据交换。前者在指令执行时获得偏移地址,是正确的;但后者的 OFFSET只能在汇编阶段获得偏移地址,但此时寄存器内容是不 可知的,所以无法获得偏移地址。INC,DEC,NEG和NOT指令的操作数既是源操作数也 是目的操作数。大小写字母转换利用它们的ASCII码相差20Ho加减法不区别无符号数和有符号数,但根据运算结果分别 设置标志寄存器的CF和OF标志,可利用CF和OF进行区别。逻辑与运算规则类似二进制的乘法,所以称其为逻辑乘。习题3.2判断题(1)对一个正整数,它的原码、反码和补码都一样,也都与 无符号数的编码一样。(2)常用的BCD码为8421 BCD码,其中的8表示D3位的 权重。(3)IA-32处理器采用小端方式存储多字节数据。(4)空操作NOP指令其实根本没有指令。(5)堆栈的操作原则是“先进后出”,所以堆栈段的数据除 PUSH和POP指令外,不允许其他方法读写。(6)虽然ADD指令和SUB指令执行后会影响标志状态,但 执行前的标志并不影响它们的执行结果。(7)指令“INCECX”和“ADDECX”的实现功能完全一 样,可以互相替换。(8)无符号数在前面加零扩展,数值不变;有符号数前面进 行符号扩展,位数加长一位、数值增加一倍。(9)逻辑运算没有进位或溢出问题,此时CF和OF没有作 用,所以逻辑运算指令如AND、OR等将CF和OF设置为0。(10)CMP指令是目的操作数减去源操作数,CMPS指令是 源操作数减去目的操作数。解答对对对错错对错错对对习题3.3填空题(1)定义字节变量的伪指令助记符是,获取 变量名所具有的偏移地址的操作符是_。(2)计算机中有一个01100001编码。如果把它认为是无 符号数,它是10进制数;如果认为它是BCD码,则表示真值_;又如果它是某个ASCII码,则代表字符 O(3)C语言用“n”表示让光标回到下一行首位,在汇编语 言中需要输出两个控制字符:一个是回车,其ASCII码是,它将光标移动到当前所在行的首位;另一个是 换行,其ASCII码是,它将光标移到下一行。(4)数据段有语句“H8843 DWORD 99008843H”,代码段 指令“MOV CX,WORD PTR H8843”执行后,CX=(5)用DWORD定义的一个变量XYZ,它的类型是,用“TYPE XYZ”会得到数值为 o如果将其以字量使用,应该用 说明。(6)数据段有语句“ABC BYTE 1,2,3”,代码段指令“MOV CL,ABC+2”执行后,CL=o(7)例题3-9的TAB定义如果是“1234567例0”,则显示结果是_o _(8)指令“XOR EAX,EAX”和“SUB EAX,EAX”执行后,EAX=,CF=OF=o 而指令“MOV EAX,0”执行后,EAX=,CF和OF没有变化。(9)例题3-15程序执行结束,变量QVAR内容是;BCD内容是。(10)欲将EDX内的无符号数除以16,使用指令“SHREDX,,其中后一个操作数是一个立即数。解答 BYTE,OFFSET97,6b小写字母a 0DH(13),0AH(10)8843H DWORD,4,WORD PTR XYZ3 78894111 0,0,0 0123456788765432H,83H4习题3.4下列十六进制数表示无符号整数,请转换为十进制形式的真值:FFH 0H 5EH EFH解答255094239习题3.5将下列十进制数真值转换为压缩BCD码:12 24 68 9912H24H68H99H习题3.6将下列压缩BCD码转换为十进制数:解 10010001 10001001 00110110 10010000解答91893690习题3.7将下列十进制数用8位二进制补码表示:0 127 一127-57解答 00000000 01111111 10000001 11000111习题3.8进行十六进制数据的加减运算,并说明是否有进位或借位:1234H+7802H F034H+5AB0H C051H-1234H 9876H-ABCDH解答 1234H+7802H=8A36H,无进位 F034H+5AB0H=4AF4H,有进位 C051H-1234H=BE1DH,无借位 9876HABCDH=ECA9H,有借位习题3.9数码。9、大写字母AZ、小写字母az对应的ASCII码 分别是多少?ASCII码0DH和0AH分别对应什么字符?解答数码09对应的ASCII码依次是30H39H。大写字母AZ对应的ASCII码依次是:41H5AH。小写字母az对应的ASCII码依次是:617AH。ASCII码0DH和0AH分别对应的是回车和换行字符。习题3.10设置一个数据段,按照如下要求定义变量或符号常量:mylb为字符串变量:Personal Computermy2b为用十进制数表示的字节变量:20my3b为用十六进制数表示的字节变量:20my4b为用二进制数表示的字节变量:20my5w为20个未赋值的字变量my6c为100的常量 my7c 表示字符串:Personal Computer 解答mylb my2b my3b my4b my5w my6c my 7cbyte Personal Computer5byte 20byte 14hbyte 00010100bword 20 dup(?)=100equ 习题3.11定义常量NUM,其值为5;数据段中定义字数组 变量DATALIST,它的头5个字单元中依次存放-10,2,5和4,最后1个单元初值不定。解答num equ 5 datalistbyte-10,2,5,4,?习题3.12J从低地址开始以字节为单位,用十六进制形式给 出下列语句依次分配的数值:byte 5 ABC5,10,10h,5 EF 3 dup(-1,?,3 dup(4)word lOh,-5,3 dup(?)解答41 42 43 OA 10 45 46 FF 00 04 04 04 FF 00 04 04 04 FF 00 04 04 0410 00 FB FF 00 00 00 00 00 00习题3.13J设在某个程序中有如下片段,请写出每条传送指 令执行后寄存器EAX的内容:;数据段org 100hvarw word 1234h,5678hvarb byte 3,4vard dword 12345678hbuff byte 10 dup(?)mess byte hello5;代码段mov eax,offset messmov eax,type buff+type mess+type vardmov eax,sizeof varw+sizeof buff+sizeof messmov eax,lengthof varw+lengthof vard解答 EAX=0114H EAX=0006H EAX=0013H EAX=0003H习题3J4按照如下输出格式,在屏幕上显示ASCII表:|0123456789ABCDEF+-201i#.30I 0123.401 ABC.50|PQRS.601 abC.701 P qrS.表格最上一行的数字是对应列ASCII代码值的低4位(用十 六进制形式),而表格左边的数字对应行ASCII代码值的高4 位(用十六进制形式)。编程在数据段直接构造这样的表格、填 写相应ASCII代码值(不是字符本身),然后使用字符串显示 子程序DISPMSG实现显示。解答include io32.inc.datatable byte|0 1 2 3 4 5 6 7 8 9 A B C D E F 13,10byte-+-13,10byte 20|,20h,20h,21h,20h,22h,20h,23h,20h,24h,20h,25h,20h,26h,20h,27h,20h,28h,20h,29h,20hbyte2ah,20h,2bh,20h,2ch,20h,2dh,20h,2eh,20h,2fh,20h,13,10byte 30|,30h,20h,31h,20h,32h,20h,33h,20h,34h,20h,35h,20h,36h,20h,37h,20h,38h,20h,39h,20hbyte3ah,20h,3bh,20h,3ch,20h,3dh,20h,3eh,20h,3fh,20h,13,10byte 5 40|,40h,20h,41h,20h,42h,20h,43h,20h,44h,20h,45h,20h,46h,20h,47h,20h,48h,20h,49h,20hbyte4ah,20h,4bh,20h,4ch,20h,4dh,20h,4eh,20h,4fh,20h,13,10byte 50|,50h,20h,51h,20h,52h,20h,53h,20h,54h,20h,55h,20h,56h,20h,57h,20h,58h,20h,59h,20hbyte5ah,20h,5bh,20h,5ch,20h,5dh,20h,5eh,20h,5fh,20h,13,10byte 60|,60h,20h,61h,20h,62h,20h,63h,20h,64h,20h,65h,20h,66h,20h,67h,20h,68h,20h,69h,20hbyte6ah,20h,6bh,20h,6ch,20h,6dh,20h,6eh,20h,6fh,20h,13,10byte 70|,70h,20h,71h,20h,72h,20h,73h,20h,74h,20h,75h,20h,76h,20h,77h,20h,78h,20h,79h,20hbyte7ah,20h,7bh,20h,7ch,20h,7dh,20h,7eh,20h,7fh,20h,13,10byte 0.codestart:mov eax,offset tablecall dispmsgexit 0end start习题3.15数据段有如下定义,IA-32处理器将以小端方式保 存在主存:var dword 12345678h现以字节为单位按地址从低到高的顺序,写出这个变量内容。并说明如下指令的执行结果:mov eax,var;EAXmov bx,var;BX=mov ex,var+2;CXmov dl,var;DLmov dh,var+3;DH=可以编程使用十六进制字节显示了起庠DSIPHB顺序显示各 个字节进行验证,还可以使用十六进制双字显示子程序DSIPHD 显示该数据进行对比。角窣答小端方式采用“低对低、高对高”,即低字节数据存放在低 地址存储单元、高字节数据存放在高地址存储单元。以字节为单 位按地址从低到高的顺序,var变量的内容:78H、56H、34H、12Ho;EAX=12345678H;BX-5678H;CX=1234H;DL=78H;DH=12H习题3.16使用若干MOV指令实现交互指令XCHG EBX,EDI”功能。解答push eax;可以没有mov eax,ebxmov ebx,edimov edi,eaxpop eax;可以没有习题3.17假设当前ESP=0012FFB0H,说明下面每条指令后,ESP等 于多少?push eax push dx push dword ptr 0f79h pop eax pop word ptr bx pop ebx解答ESP=0012FFACHESP=0012FFAAHESP=0012FFA6HESP=0012FFAAHESP=0012FFACHESP=0012FFB0H习题3J8已知数字09对应的格雷码依次为:18H、34H、05H、06H、09H、OAH、OCH、11H、12H、14H;请为如下程 序的每条指令加上注释,说明每条指令的功能和执行结果。;数据段table byte 18h,34h,05h,06h,09h,Oah,Och,llh,12h,14h;代码段mov ebx,offset tablemov al,8 xlat为了验证你的判断,不妨使用本书的I/O子程序库提供的子 程序DISPHB显示换码后AL的值。如果不使用XLAT指令,应 如何修改?解答;数据段table byte 18h,34h,05h,06h,09h,Oah,Och,llh,12h,14h;定 义格雷码表代码段mov ebx,offset table;8*=格雷码表首地址mov al,8;AL=8xlat;AL=12H(8 的格雷码)不使用XLAT指令:mov ebx,offset table;8乂=格雷码表首地址mov eax,0mov al,8;AL=8mov al,eax+ebx;AL 12H(8 的格雷码)习题3J9请分别用一条汇编语言指令完成如下功能:(1)把EBX寄存器和EDX寄存器的内容相加,结果存入 EDX寄存器。(2)用寄存器EBX和ESI的基址变址寻址方式把存储器的 一个字节与AL寄存器的内容相加,并把结果送到AL中。(3)用EBX和位移量0B2H的寄存器相对寻址方式把存储 器中的一个双字和ECX寄存器的内容相加,并把结果送回存储 器中。(4)将32位变量VARD与数3412H相加,并把结果送回该 存储单元中。(5)把数0A0H与EAX寄存器的内容相加,并把结果送回 EAX 中。解答 add edx,ebx add al,ebx+esi add bx+0b2h,ex add varw,3412h add eax,OaOh习题320分别执行如下程序片断,说明每条指令的执行结 果;(1)mov addeax,80h;eax,3;EAX=_EAX=_ _,CF=_,SFaddeax,80h;
展开阅读全文