微机原理与接口技术(第四版)课后习题答案.pdf
微机原理与接口技术”习题解答计课2 班黄晓杰第1章微型计算机系统(习题1.1)简答题(1)计算机字长(W o r d)指的是什么?(2)总线信号分成哪三组信号?(3)P C 机主存采用DRAM组成还是S R A M 组成?(4)Ca c h e 是什么意思?(5)R OM-B I OS 是什么?(6)中断是什么?(7)32 位 P C 机主板的芯片组是什么?(8)教材中MASM是指什么?(9)处理器的“取指一译码一执行周期”是指什么?(10)本课程的主要内容属于计算机系统层次结构中哪个层次?(解答)处理器每个单位时间可以处理的二进制数据位数称计算机字长。总线信号分成三组,分别是数据总线、地址总线和控制总线。P C 机主存采用DRAM组成。高速缓冲存储器Ca c h e 是处理器与主存之间速度很快但容量较小的存储器。R OM-B I OS 是“基本输入输出系统”,操作系统通过对B I OS 的调用驱动各硬件设备,用户也可以在应用程序中调用B I OS 中的许多功能。中断是C P U 正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。主板芯片组是主板的核心部件,它提供主板上的关键逻辑电路。MASM是微软开发的宏汇编程序。(9)指令的处理过程。处理器的“取指一译码一执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。机器语言层,即指令集结构。(学生很多认为是:汇编语言层。前4 章主要涉及汇编语言,但本书还有很多处理器原理等内容)(习题1.2)判断题(1)软件与硬件的等价性原理说明软硬件在功能、性能和成本等方面是等价的。(2)1A-6 4 结构是I A-3 2结构的6 4 位扩展,也就是I n t e l 6 4 结构。(3)80 86 的数据总线为16 位,也就是说80 86 的数据总线的个数、或说条数、位数是16。(4)微机主存只要使用RAM芯片就可以了。(5)处理器并不直接连接外设,而是通过I/O 接口电路与外设连接。(6)处理器是微机的控制中心,内部只包括5 大功能部件的控制器。(7)W in d ow s 的模拟D O S 环境与控制台环境是一样的。(8)16 位 I B M P C/A T 机采用I S A 系统总线。(9)I A-3 2处理器吸取了 R I S C 技术特长。R I S C 是指复杂指令集计算机。(10)处理器进行读操作,就是把数据从处理器内部读出传送给主存或外设。(解答)错 错 对 错 对 错 错 对 错 错(习题1.3)填空题(D C P U 是英文 的缩写,中文译为,微型机采用 芯片构成C P U。(2)I n t e l 80 86 支持 容量主存空间,80 4 86 支持 容量主存空间。(3)二进制16 位共有 个编码组合,如果一位对应处理器一个地址信号,16 位地址信号共能寻址 容量主存空间。(4)D O S 主要支持两种可执行文件,它们的扩展名分别是 和。(5)英文缩写I S A 常表示P C 机工业标准结构(I n d u s t r y S t an d ar d A r c hit e c t u r e)总线,也表示指令集答 结构,后者的英文原文是 0(6)Windows的文件夹对应的专业术语是。(7)Pentium系列处理器的多媒体指令有,SSE,SSE2和 类指令。(8)Pentium处理器采用 位数据总线与主存相连。(9)最初由 公司采用Intel 8088处理器和 操作系统推出PC机。(10)当前32位PC机主要采用 总线连接I/O接口电路卡。Central Processing Unit,中央处理单元,处理器1MB,4GB216,64KBEXE,COMInstruction Set Architecture目录MMX,SSE364IBM,DOSPCI(习题1.4)说明微型计算机系统的硬件组成及各部分作用。(解答)CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统的协调和控制。存储器:存储器是存放程序和数据的部件。外部设备:外部设备是指可与微机进行交互的输入(Inpul)设备和输出(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层是控制层。第0层是数字电路层。普通计算机用户和软件人员对计算机系统的认识并不一样。普通计算机用户看到的计算机,也就是我们最熟悉的计算机,属于用户层,而软件人员看到的属于高级语言层或是汇编语言层。(习题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)执行了一条加法指令后,发现Z F=1,说明结果是什么?(7)汇编语言中的标识符与高级语言的变量和常量名的组成原则有本质的区别吗?(8)汇编语言的标识符大小写不敏感意味着什么?(9)汇编语言源程序文件中,END语句后的语句会被汇编吗?(10)为什么将杳找操作数的方法称为数据寻“址”方式?(解答)A L U是算术逻辑运算单元,负责处理器所能进行的各种运算,主要是算术运算和逻辑运算。取指是指从生存取出指令代码通过总线传输到处理器内部指令寄存器的过程。8 08 6分成总线接口单元和指令执行单元,可以独立操作。在执行单元执行一条指令的同时,总线接口单元可以读取下一条指令,等到执行时不需要进行取指了,所以称为预取。Pentium采用分离的Cache结构,一个用做指令C ach e,一个用做数据Cache。堆栈的存取原则是先进后出(也称为后进先出)操作方式存取数据。标志寄存器主要保存反映指令执行结果和控制指令执行形式的有关状态。执行了一条加法指令后,发现Z F=1,表明运算结果为0。没有。汇编语言的标识符大小写不敏感,即表示字母大小写不同、但 表 示 同 个符号。不 会。指令的操作数需要通过存储器地址或I/O地址,才能查找到数据本身,故称数据寻址方式。(习题2.2)判断题(1)程序计数器P C或指令指针EI P寄存器属于通用寄存器。(2)处理器的指令译码是将指令代码翻译成它代表的功能的过程,与数字电路的译码器是不同的概念。(3)E A X也被称为累加器,因为它使用最频繁。(4)处理器的传送指令M O V属于汇编语言的执行性语句。(5)汇编语言的语句由明显的4部分组成,不需要分隔符区别。(6)8 0减90(8 0-9 0)需要借位,所以执行结束后,进位标志C F=1。(7)M ASM汇编语言的注释用分号开始,但不能用中文分号。(8)IA-32处理器在实地址方式下,不能使用32位寄存器。(9)存储器寻址方式的操作数当然在主存了。(1 0)保护方式下,段基地址加偏移地址就是线性地址或物理地址。(解答)错 对 对 对 错 对 对 错 对 对(习题2.3)填空题(1)寄存器E D X是 位的,其中低16位的名称是,还可以分成两个8位的寄存器,其中D 8-D 15部分可以用名称 表示。(2)IA-32处理器在保护方式下,段寄存器是 位的。(3)逻辑地址由 和 两部分组成。代码段中下一条要执行的指 令 由C S和寄存器指示,后者在实地址模型中起作用的仅有 寄存器部分。(4)进行8位二进制数加法:10111010+01101100,8位结果是,标志PF=。(5)在实地址工作方式下,逻辑地址“738 0H:400H”表 示 的 物 理 地 址 是,并且该段起始于 物理地址。(6)IA-32处理器有8个32位通用寄存器,其中EAX,,和E D X,可以分成16位和8位操作;还有另外4个是,,和.(7)IA-32处理器复位后,首先进入是_ _ _ _ _ _ _ _ _工作方式。该 工 作 方 式 分 段 最 大 不 超 过。(8)M ASM要 求 汇 编 语 言 源 程 序 文 件 的 扩 展 名 是,汇编产生扩展名为O B J的文件被称为 文件,编写32位Windows应用程序应选择 存储模型。(9)除外设数据外的数据寻址方式有3类,分别被称为、和(1 0)用E B X做基地址指令,默认采用 段寄存器指向的数据段;如果采用BP,E B P或SP,ESP作为基地址指针,默认使用 段寄存器指向堆栈段。(解答)32,DX,DH 16段地址,偏移地址,EIP,IP00100110,073COOH,73800HEBX,ECX,ESI,EDI,EBP,ESP实地址,64KBA S M,目标模块,FLAT立即数寻址、寄存器寻址和存储器寻址DS,SS(习题2.4)处理器内部具有哪3个基本部分?8086分为哪两大功能部件?其各自的主要功能是什么?解答)处理器内部有ALU、寄存器和指令处理三个基本单元。8086有两大功能部件:总线接口单元和执行单元。总线接口单元:管理着8086与系统总线的接口,负责处理器对存储器和外设进行访问。8086所有对外操作必须通过BIU和这些总线进行。执行单元EU:负责指令译码、数据运算和指令执行。(习题2.5)8086怎样实现了最简单的指令流水线?(解答)8086中,指令的读取是在BIU单元,而指令的执行是在EU单元。因为BIU和EU两个单元相互独立、分别完成各自操作,所以可以并行操作。也就是说,在EU单元对一个指令进行译码执行时,BIU单元可以同时对后续指令进行读取;这就是最简单的指令流水线技术。(习题2.6)什么是标志?什 么 是IA-32处理器的状态标志、控制标志和系统标志?说明状态标志在标志寄存器EFLAGS的位置和含义。(解答)标志:用于反映指令执行结果或控制指令执行形式的一个或多个二进制数位。例如,有些指令执行后会影响有关标志位;有些指令的执行要利用相关标志。状态标志:用来记录程序运行结果的状态信息。控制标志:DF标志,控制字符串操作的地址方向。系统标志:用于控制处理器执行指令的方式。状态标志在标志寄存器EFLAGS中的位置和含义如下:31 11 198765432100.OFSFZFAFPFCF(习题2.7)举例说明CF和O F标志的差异。(解答)进位标志CF表示无符号数运算结果是否超出范围,超出范围后加上进位或借位,运算结果仍然正确;溢出标志OF表示有符号数运算结果是否超出范围,如果超出范围,运算结果已经不正确。例 1:3AH+7CH=B6H无符号数运算:58+124=182,范围内,无进位。有符号数运算:58+124=182,范围外,有溢出。例 2:AAH+7CH=026H无符号数运算:170+124=294,范围外,有进位。有符号数运算:-86+124=28,范围内,无溢出。(习题2.8)什么是8 0 8 6中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达(均为十六进制形式):F F F F :0 4 0 :1 7 2 0 0 0 :4 5 0 0 B 8 2 I :4 5 6 7(解答)物理地址:在处理器地址总线上输出的地址称为物理地址。每个存储单元有一个唯一的物理地址。逻辑地址:在处理器内部、程序员编程时采用逻辑地址,采 用“段地址:偏移地址“形式。某个存储单元可以有多个逻辑地址,即处于不同起点的逻辑段中,但其物理地址是唯的。逻辑地址转换成物理地址:逻辑地址由处理器在输出之前转换为物理地址。将逻辑地址中的段地址左移二进制4位(对 应1 6进制是一位,即乘以1 6),加上偏移地址就得到2 0位物理地址。F F F F H:0=F F F F 0 H 4 0 H:1 7 H=0 0 4 1 7 H 2 0 0 0 H:4 5 0 0 H=2 4 5 0 0 H B 8 2 1 H:4 5 6 7 H=B C 7 7 7 H(习题2.9)I A-3 2处理器有哪三类基本段,各是什么用途?(解答)I A-3 2处理器有代码段、数据段、堆栈段三类基本段。代码段:存放程序的指令代码。程序的指令代码必须安排在代码段,否则将无法正常执行。数据段:存放当前运行程序所用的数据。程序中的数据默认是存放在数据段,也可以存放在其他逻辑段中。堆栈段:主存中堆栈所在的区域。程序使用的堆栈一定在堆栈段。(习题2.1 0)什么是平展存储模型、段式存储模型和实地址存储模型?(解答)平展存储模型下,对程序来说存储器是个连续的地址空间,称为线性地址空间。程序需要的代码、数据和堆栈都包含在这个地址空间中。段式存储模型下,对程序来说存储器由一组独立的地址空间组成,独立的地址空间称为段。通常,代码、数据和堆栈位于分开的段中。实地址存储模型是8 0 8 6处理器的存储模型。它是段式存储模型的特例,其线性地址空间最大为1 MB容量,由最大为6 4 K B的多个段组成。(习题2.1 1)什么是实地址方式、保护方式和虚拟8 0 8 6方式?它们分别使用什么存储模型?(解答)实地址方式:与8 0 8 6具有相同的基本结构,只能寻址1 M B物理存储器空间,逻辑段最大不超过6 4 K B:但可以使用3 2位寄存器、3 2位操作数和3 2位寻址方式;相当于可以进行3 2位处理的快速8 0 8 6。实地址工作方式只能支持实地址存储模型。保护方式:具有强大的段页式存储管理和特权与保护能力,使用全部3 2条地址总线,可寻址4 G B物理存储器。保护方式通过描述符实现分段存储管理,每个逻辑段可达4 G B。处理器工作在保护方式时,可以使用平展或段式存储模型。虚拟8 0 8 6方式:在保护方式下运行的类似实方式的运行环境,只 能 在1 M B存储空间下使用“1 6位段”。处理器工作在虚拟8 0 8 6方式时,只能使用实地址存储模型。(习题2.1 2)汇编语句有哪两种,每个语句由哪4个部分组成?(解答)汇编语句有两种:执行性语句(处理器指令)、说明性语句(伪指令)。每个语句有:标号、指令助记符、操作数或参数、注释4个部分组成。习题2.1 3)汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。(解答)汇编语言程序的开发有4个步骤:编辑:用文本编辑器形成一个以A SM为扩展名的源程序文件。汇编:用汇编程序将A SM文件转换为O B J模块文件。连接:用连接程序将一个或多个目标文件链接成一个E X E或CO M可执行文件。调 试.:用调试程序排除错误,生成正确的可执行文件。(习题2.14 MASM汇编语言中,下面哪些是程序员可以使用的正确的标识符。FFH,DS,Oxvab,Again,next,data,h_ascii,6364b,.exit,small(解答)FFH Again,next*h_ascii(习题2.1 5)给出IA-32处理器的32位寻址方式和16位寻址方式的组成公式,并说明各部分作用。(解答)32位存储器寻址方式的组成公式32位有效地址=基址寄存器+(变址寄存器X比例)十位移量其中的4个组成部分是:基址寄存器任何8个32位通用寄存器之一;变址寄存器除ESP之外的任何32位通用寄存器之一;比例可以是1,2,4或8 (因为操作数的长度可以是1,2,4或8字 节);位移量_可以是8或32位有符号值。16位存储器寻址方式的组成公式16位有效地址=基址寄存器+变址寄存器+位移量其中基址寄存器只能是B X或B P,变址寄存器只能是S I或D L位移量是8或16位有符号值(习题2.1 6)说明下列指令中源操作数的寻址方式?假设VARD是一个双字变量。(1)mov edx,1234h(2)mov edx,vard(3)mov edx,cbx(4)mov edx,ebx(5)mov edx,ebx+1234h(6)mov edx,vardebx(7)mov edx,ebx+edi(8)movedx,ebx+edi+1234h(9)movedx,vardesi+edi(10)mov edx,ebp*4(解答)立即数 直接 寄存器寄存器间接寄存器相对寄存器相对 基址变址相对基址变址(9)相对基址变址带比例寻址(习题2.17)使用本书配套的软件包(或者按照本书说明)创建MASM开发环境,通过编辑例题2-1和例题2-2程序、汇编连接生成可执行程序和列表文件,掌握汇编语言的开发。第 3 章数据处理(习题3.1)简答题(1)使用二进制8位表达无符号整数,257有对应的编码吗?(2)字 符 F 和数值46H作为MOV指令的源操作数有区别吗?(3)为什么可以把指令“MOV AX,(34+67H)*3中的数值表达式看成是常量?(4)数值5 0 0,能够作为字节变量的初值吗?(5)为什么说XCHGEDX,CX”是条错误的指令?(6)都是获取偏移地址,为什么指令LEA EBX,ESI”正确,而指令“MOV EBX,OFFSETESI”就错误?(7)INC,DEC,NEG和NOT都是单操作数指令,这个操作数应该是源操作数还是目的操作数?(8)大小写字母转换使用了什么规律?(9)乘除法运算针对无符号数和有符号数,有两种不同的指令。只有一种指令的加减法如何区别无符号数和有符号数运算?(1 0)逻辑与运算为什么也称为逻辑乘?(解答)没 有。使用二进制8位表达无符号整数,257没有对应的编码。字 符“F”的ASCII码就是数值4 6 H,所以没有区别。汇编程序在汇编过程中对数值表达式计算,得 到 个确定的数值,故称数值表达式为常量。不 能。数值500大于一个字节所能表达的数据量,所以不能为字节变量赋值。源、目标寄存器位数不同,不能用该指令进行数据交换。前者在指令执行时获得偏移地址,是正确的:但后者的OFFSET只能在汇编阶段获得偏移地址,但此时寄存器内容是不可知的,所以无法获得偏移地址。INC,DEC,NEG和NOT指令的操作数既是源操作数也是目的操作数。大小写字母转换利用它们的ASCII码相差20H。(9)加减法不区别无符号数和有符号数,但根据运算结果分别设置标志寄存器的CF和OF标志,可利用CF和OF进行区别。逻辑与运算规则类似二进制的乘法,所以称其为逻辑乘。(习题3.2)判断题(1)对一个正整数,它的原码、反码和补码都一样,也都与无符号数的编码一样。(2)常用的BCD码为8421 BCD码,其中的8表示D3位的权重。(3)1A-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码,则代表字符。(3)C 语言用“n”表示让光标回到下-行首位,在汇编语言中需要输出两个控制字符:一个是回车,其 ASCII码是,它将光标移动到当前所在行的首位;另一个是换行,其 ASCII码是,它将光标移到下一行。(4)数据段有语句“H8843 DWORD 99008843H”,代码段指令 MOV CX,WORD PT R H8843”执行后,CX=o(5)用 DWORD定义的一个变量X Y Z,它的类型是,用“T YPE XYZ会得到数值为。如果将其以字量使用,应该用 说明。(6)数据段有语句“ABC BYT E 1,2,3”,代码段指令MOV CL,ABC+2”执行后,CL=.(7)例题3-9的T AB定义如果是“1234567890”,则显示结果是。(8)指令XOR EAX,EAX”和“SUB EAX,EAX”执行后,EAX=,CF=OF=。而指令“MOVEAX,。”执行后,EAX=,CF和OF没有变化。(9)例题3-15程序执行结束,变量QVAR内容是;BCD内容是.(10)欲将EDX内的无符号数除以1 6,使用指令“SHREDX,其中后一个操作数是-个立即数。BYT E,OFFSET97,6 1,小写字母a0DH(13),0AH(10)8843HDWORD,4,WORD PT R XYZ3788941110,0,00123456788765432H,83H4(习题3.4)下列十六进制数表示无符号整数,请转换为十进制形式的真值:FFH 0H 5EH EFH(解答)255 0 94 239(习题3.5)将 卜.列十进制数真值转换为压缩BCD码:12 24 68 99(解答)12H 24H 68H 99H率(习题3.6)将卜列压缩BCD码转换为十进制数:10010001 10001001 00110110(4)10010000(解答)91 89 36(4)90(习题3.7)将下列十进制数用8 位二进制补码表示:。127-127 -57(解答)00000000 01111111 10000001 11000111(习题3.8)进行十六进制数据的加减运算,并说明是否有进位或借位:1234H+7802H F034H+5AB0H C05IH-1234H 9876H-ABCDH(解答)1234H+7802H=8A36H,无进位 F034H+5AB0H=4AF4H,有进位 CO51H-1234H=BE1DH,无借位 9876H-ABCDH=ECA9H,有借位(习题3.9)数码。9、大写字母A Z、小写字母a z 对应的ASCII码分别是多少?ASCII码 0DH和0AH分别对应什么字符?(解答)数码0 9 对应的ASCII码依次是30H 39H。大写字母A Z 对应的ASCII码依次是:41H 5AH。小写字母a z 对应的ASCH码依次是:61-7AH.ASCII码0DH和0AH分别对应的是回车和换行字符。(习题3.10)设置一个数据段,按照如下要求定义变量或符号常量:mylb为字符串变量:Personal Computer my2b为用十进制数表示的字节变量:20 my3b为用十六进制数表示的字节变量:20 my4b为用二进制数表示的字节变量:20 my5w为20个未赋值的字变量 my6c为 100的常量 my7c 表示字符串:Personal Computer(解答)m y l bb y t e Pe rs ona l Com pu t e rm y 2bb y t e 20m y 3bb y t e 14hm y 4 bb y t e 00010100bm y 5ww ord 20 d u p(?)m y 6c=100m y 7ce qu (习题3.11)定义常量N U M,其值为5:数据段中定义字数组变量DATALIST,它的头5个字单元中依次存放-10,2,5和4,最后1个单元初值不定。(解答)nu m e qu 5d a t a l i s t b y t e -10,2,5,4,?(习题3.12)从低地址开始以字节为单位,用十六进制形式给出下列语句依次分配的数值:b y t e ABC,10,10h,EF,3 d u p(-l,?,3 d u p(4)w ord l Oh,-5,3 d u p(?)(解答)41 42 43 0A 10 45 46 FF 00 04 04 04 FF 00 04 04 04 FF 00 04 04 0410 00FB FF 00 00 00 00 00 00(习题3.13)设在某个程序中有如下片段,请写出每条传送指令执行后寄存器EAX的内容:;数据段org 100hv a rw w ord 1234h,5678hv a rb b y t e 3,4v a rd d w ord 12345678hb u f f b y t e 10 d u p(?)m e s s b y t e J h e l l o,;代码段m ov e a x,of f s e t m e s sm ov e a x,t y pe b u f f+t y pe m e s s+t y pe v a rdm ov e a x,s i z e of v a rw+s i z e of b u f f+s i z e of m e s sm ov e a x,l e ng t h of v a rw+l e ng t h of v a rd(解答)EAX=0114H EAX=0006H EAX=0013H EAX=0003H(习题3.14)按照如下输出格式,在屏幕上显示ASCII表:I 0 1 2 3 4 5 6 7 8 9 A B C D E F2030405060700 1 2 3.A B C P Q R S a b cp q r s.表格最上一行的数字是对应列ASCH代码值的低4位(用十六进制形式),而表格左边的数字对应行ASCII代码值的高4位(用十六进制形式)。编程在数据段直接构造这样的表格、填写相应ASCII代码值(不是字符本身),然后使用字符串显示子程序DISPMSG实现显示。1解答)i nc l u d e i o32.i nc.d a t at a b l e b y t e|0 1 2 3 4 5 6 7 8 9 A B C D E F,13,10b y t e -+-,13,10b y t e 20|,20h,20h,21h,20h,22h,20h,23h,20h,24h,20h,25h,20h,26h,20h,27h,20h,28h,20h,29h,20hb y t e 2a h,20h,2b h,20h,2c h,20h,2d h,20h,2e h,20h,2f h,20h,13,10b y t e 30|,30h,20h,31h,20h,32h,20h,33h,20h,34h,20h,35h,20h,36h,20h,37h,20h,38h,20h,39h,20hb y t e 3a h,20h,3b h,20h,3c h,20h,3d h,20h,3e h,20h,3f h,20h,13,10b y t e 40|,40h,20h,41h,20h,42h,20h,43h,20h,44h,20h,45h,20h,46h,20h,47h,20h,48h,20h,49h,20hb y t e 4a h,20h,4b h,20h,4c h,20h,4d h,20h,4e h,20h,4f h,20h,13,10b y t e 50|,50h,20h,51h,20h,52h,20h,53h,20h,54h,20h,55h,20h,56h,20h,57h,20h,58h,20h,59h,20hb y t e 5a h,20h,5b h,20h,5c h,20h,5d h,20h,5e h,20h,5f h,20h,13,10b y t e 60|,60h,20h,61h,20h,62h,20h,63h,20h,64h,20h,65h,20h,66h,20h,67h,20h,68h,20h,69h,20hb y t e 6a h,20h,6b h,20h,6c h,20h,6d h,20h,6e h,20h,6f h,20h,13,10b y t e 70|,70h,20h,71h,20h,72h,20h,73h,20h,74h,20h,75h,20h,76h,20h,77h,20h,78h,20h,79h,20hb y t e 7a h,20h,7b h,20h,7c h,20h,7d h,20h,7e h,20h,7f h,20h,13,10b y t e 0.c od es t a rt:m ov e a x,of f s e t t a b l ec a l l d i s pm s ge x i t 0e nd s t a rt(习题3.15)数据段有如下定义,IA-32处理器将以小端方式保存在主存:v a r d w ord 12345678h现以字节为单位按地址从低到高的顺序,写出这个变量内容。并说明如下指令的执行结果:m ov e a x,v a r;EAX=m ov b x,v a r;BX=_m ov e x,v a r+2;C X=_m ov d l,v a r;DL=_m ov d h,v a r+3;DH=可以编程使用十六进制字节显示子程序DSIPHB顺序显示各个字节进行验证,还可以使用卜六进制双字显示子程序DSIPHD显示该数据进行对比。(解答)小端方式采用“低对低、高对高”,即低字节数据存放在低地址存储单元、高字节数据存放在高地址存储单元。以字节为单位按地址从低到高的顺序,var变量的内容:78H、56H、34H、12H。;EAX=12345678H;BX=5678H;CX=1234H;DL=78H;DH=12H(习题3.16)使用若干MOV指令实现交互指令XCHGEBXJEDI”功能。(解答)pu s h e a x ;可以没有m ov e a x,e b xm ov e b x,e d i m ov e d i,e a xpop e a x ;可以没有(习题3.17)假设当前ESP=0012FFB0H,说明下面每条指令后,ESP等于多少?pu s h e a xpu s h d xpu s h d w ord pt r 0f 79hpop e a xpop w ord pt r b x pop e b x(解答)ESP=0012FFACHESP=0012FFAAHESP=0012FFA6HESP=0012FFAAHESP=0012FFACHESP=0012FFB0H(习题3.18)已知数字0 9对应的格雷码依次为:18H、34H、05H、06H、09H、OAH、OCH、11H、12H、14H;请为如下程序的每