《2022年微机原理与接口技术课后习题答案 3.pdf》由会员分享,可在线阅读,更多相关《2022年微机原理与接口技术课后习题答案 3.pdf(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、微机原理与接口技术( 第四版 )课后习题答案名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 27 页 - - - - - - - - - 第 1 章 微型计算机系统 处理器每个单位时间可以处理的二进制数据位数称计算机字长。 总线信号分成三组,分别是数据总线、地址总线和控制总线。 PC 机主存采用DRAM 组成。 高速缓冲存储器Cache 是处理器与主存之间速度很快但容量较小的存储器。 ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS 的调用驱动各硬件设备,用
2、户也可以在应用程序中调用BIOS 中的许多功能。 中断是CPU 正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。 主板芯片组是主板的核心部件,它提供主板上的关键逻辑电路。 MASM是微软开发的宏汇编程序。 指令的处理过程。处理器的“取指译码执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。 机器语言层,即指令集结构。(学生很多认为是:汇编语言层。前4 章主要涉及汇编语言,但本书还有很多处理器原理等内容)习题 1.3填空题 Centra
3、l Processing Unit,中央处理单元,处理器 1MB ,4GB 216,64KB EXE ,COM Instruction Set Architecture 目录 MMX ,SSE3 64 IBM ,DOS PCI 习题 1.4说明微型计算机系统的硬件组成及各部分作用。解答CPU:CPU 也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。存储器:存储器是存放程序和数据的部件。外部设备:外部设备是指可与微机进行交互的输入(Input )设备和输
4、出(Output )设备,也称I/O设备。 I/O 设备通过 I/O 接口与主机连接。总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。习题 1.5什么是通用微处理器、单片机(微控制器)、DSP 芯片、嵌入式系统?解答通用微处理器:适合较广的应用领域的微处理器,例如装在PC 机、笔记本电脑、工作站、服务器上的微处理器。单片机:是指通常用于控制领域的微处理器芯片,其内部除CPU 外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。DSP 芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行
5、快速乘法和加法运算。嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统。习题 1.7区别如下概念:助记符、汇编语言、汇编语言程序和汇编程序。解答助记符:人们采用便于记忆、并能描述指令功能的符号来表示机器指令操作码,该符号称为指令助名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 27 页 - - - - - - - - - 2记符。汇编语言:用助记符表示的指令以及使用它们编写程序的规则就形成汇编语言。汇编语言程序:用汇编语言书写的程序就是汇编
6、语言程序,或称汇编语言源程序。汇编程序:汇编语言源程序要翻译成机器语言程序才可以由处理器执行。这个翻译的过程称为“汇编”,完成汇编工作的程序就是汇编程序(Assembler )。习题1.8区别如下概念:路径、绝对路径、相对路径、当前目录。系统磁盘上存在某个可执行文件,但在 DOS 环境输入其文件名却提示没有这个文件,是什么原因?解答路径:操作系统以目录形式管理磁盘上的文件,文件所在的分区和目录就是该文件的路径。绝对路径:从根目录到文件所在目录的完整路径称为“绝对路径”。是保证文件唯一性的标示方法。相对路径:从系统当前目录到文件所在目录的路径称为相对路径。当前目录:用户当前所在的目录就是当前目录
7、。指明的路径不正确,或者执行了另外一个同名的文件。习题 1.10冯诺依曼计算机的基本设计思想是什么?解答采用二进制形式表示数据和指令。指令由操作码和地址码组成。将程序和数据存放在存储器中,计算机在工作时从存储器取出指令加以执行,自动完成计算任务。这就是“存储程序”和“程序控制”(简称存储程序控制)的概念。指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。计算机由存储器、运算器、控制器、输入设备和输出设备五大基本部件组成,并规定了5 部分的基本功能。习题 1.11 计算机系统通常划分为哪几个层次?普通计算机用户和软件开发人员对计算机系统的认识一样吗?解答最上层是
8、用户层。第 5 层是高级语言层。第 4 层是汇编语言层。第 3 层是操作系统层。第 2 层是机器语言层。第 1 层是控制层。第 0 层是数字电路层。普通计算机用户和软件人员对计算机系统的认识并不一样。普通计算机用户看到的计算机,也就是我们最熟悉的计算机,属于用户层,而软件人员看到的属于高级语言层或是汇编语言层。第 2 章 处理器结构习题 2.1简答题解答 ALU 是算术逻辑运算单元,负责处理器所能进行的各种运算,主要是算术运算和逻辑运算。 取指是指从主存取出指令代码通过总线传输到处理器内部指令寄存器的过程。8086 分成总线接口单元和指令执行单元,可以独立操作。在执行单元执行一条指令的同时,总
9、线接口单元可以读取下一条指令,等到执行时不需要进行取指了,所以称为预取。 Pentium 采用分离的Cache 结构,一个用做指令Cache,一个用做数据Cache。 堆栈的存取原则是先进后出(也称为后进先出)操作方式存取数据。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 27 页 - - - - - - - - - 3 标志寄存器主要保存反映指令执行结果和控制指令执行形式的有关状态。 执行了一条加法指令后,发现ZF 1,表明运算结果为0。 没有。 汇编语言的标识符大小
10、写不敏感,即表示字母大小写不同、但表示同一个符号。 不会。 指令的操作数需要通过存储器地址或I/O 地址,才能查找到数据本身,故称数据寻址方式。习题 2.3填空题 32,DX ,DH 16 段地址,偏移地址,EIP ,IP 00100110,0 73C00H ,73800H EBX ,ECX ,ESI ,EDI ,EBP,ESP 实地址, 64KB ASM ,目标模块, FLAT 立即数寻址、寄存器寻址和存储器寻址 DS,SS 习题 2.4处理器内部具有哪3 个基本部分? 8086 分为哪两大功能部件?其各自的主要功能是什么?解答处理器内部有ALU 、寄存器和指令处理三个基本单元。8086 有
11、两大功能部件:总线接口单元和执行单元。总线接口单元:管理着8086 与系统总线的接口,负责处理器对存储器和外设进行访问。8086 所有对外操作必须通过BIU 和这些总线进行。执行单元 EU:负责指令译码、数据运算和指令执行。习题 2.6什么是标志?什么是IA-32处理器的状态标志、控制标志和系统标志?说明状态标志在标志寄存器EFLAGS的位置和含义。解答标志:用于反映指令执行结果或控制指令执行形式的一个或多个二进制数位。例如,有些指令执行后会影响有关标志位;有些指令的执行要利用相关标志。状态标志:用来记录程序运行结果的状态信息。控制标志: DF 标志,控制字符串操作的地址方向。系统标志:用于控
12、制处理器执行指令的方式。状态标志在标志寄存器EFLAGS中的位置和含义如下:31 11 10 9 8 7 6 5 4 3 2 1 0 OF SF ZF AF PF CF 习题2.8什么是8086 中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达(均为十六进制形式): FFFF 0 4017 20004500 B8214567 解答物理地址:在处理器地址总线上输出的地址称为物理地址。每个存储单元有一个唯一的物理地址。逻辑地址:在处理器内部、程序员编程时采用逻辑地址,采用“段地址:偏移地址“形式。某个存储单元可以有多个逻辑地址,即处于不同起点的逻辑段中,但其物理地
13、址是唯一的。逻辑地址转换成物理地址:逻辑地址由处理器在输出之前转换为物理地址。将逻辑地址中的段地址左移二进制4 位(对应 16 进制是一位,即乘以16),加上偏移地址就得到20位物理地址。 FFFFH:0 FFFF0H 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 27 页 - - - - - - - - - 4 40H:17H 00417H 2000H:4500H 24500H B821H:4567H BC777H 习题 2.9IA-32 处理器有哪三类基本段,各是什
14、么用途?解答IA-32 处理器有代码段、数据段、堆栈段三类基本段。代码段:存放程序的指令代码。程序的指令代码必须安排在代码段,否则将无法正常执行。数据段:存放当前运行程序所用的数据。程序中的数据默认是存放在数据段,也可以存放在其他逻辑段中。堆栈段:主存中堆栈所在的区域。程序使用的堆栈一定在堆栈段。习题 2.11什么是实地址方式、保护方式和虚拟8086 方式?它们分别使用什么存储模型?解答实地址方式:与 8086具有相同的基本结构, 只能寻址 1MB 物理存储器空间, 逻辑段最大不超过64KB ;但可以使用32位寄存器、 32位操作数和32位寻址方式;相当于可以进行32 位处理的快速8086。实
15、地址工作方式只能支持实地址存储模型。保护方式:具有强大的段页式存储管理和特权与保护能力,使用全部32 条地址总线,可寻址4GB物理存储器。保护方式通过描述符实现分段存储管理,每个逻辑段可达4GB。处理器工作在保护方式时,可以使用平展或段式存储模型。虚拟 8086 方式:在保护方式下运行的类似实方式的运行环境,只能在1MB 存储空间下使用“16 位段”。处理器工作在虚拟8086 方式时,只能使用实地址存储模型。习题 2.12汇编语句有哪两种,每个语句由哪4 个部分组成?解答汇编语句有两种:执行性语句(处理器指令)、说明性语句(伪指令)。每个语句有:标号、指令助记符、操作数或参数、注释4 个部分组
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 解答 立即数 直接 寄存器 寄存器间接 寄存器相对 寄存器相对 基址变址 相对基址变址名师资料总结 - - -精品资料欢迎下载 - - - -
17、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 27 页 - - - - - - - - - 5 相对基址变址 带比例寻址第 3 章 数据处理习题 3.1简答题(1)使用二进制8 位表达无符号整数,257 有对应的编码吗?(2)字符“ F ”和数值 46H 作为 MOV 指令的源操作数有区别吗?(3)为什么可以把指令“MOV AX, (3467H)*3 ”中的数值表达式看成是常量?(4)数值 500,能够作为字节变量的初值吗?(5)为什么说“ XCHG EDX,CX”是一条错误的指令?(6)都是获取偏移地址,为什么指令 “LE
18、A EBX, ESI”正确, 而指令“MOV EBX, OFFSETESI”就错误?(7)INC ,DEC ,NEG 和 NOT 都是单操作数指令,这个操作数应该是源操作数还是目的操作数?(8)大小写字母转换使用了什么规律?(9)乘除法运算针对无符号数和有符号数,有两种不同的指令。只有一种指令的加减法如何区别无符号数和有符号数运算?(10)逻辑与运算为什么也称为逻辑乘?解答 没有。使用二进制8 位表达无符号整数,257 没有对应的编码。 字符“ F ”的 ASCII 码就是数值46H,所以没有区别。 汇编程序在汇编过程中对数值表达式计算,得到一个确定的数值,故称数值表达式为常量。 不能。数值5
19、00 大于一个字节所能表达的数据量,所以不能为字节变量赋值。 源、目标寄存器位数不同,不能用该指令进行数据交换。 前者在指令执行时获得偏移地址,是正确的;但后者的OFFSET 只能在汇编阶段获得偏移地址,但此时寄存器内容是不可知的,所以无法获得偏移地址。 INC ,DEC,NEG 和 NOT 指令的操作数既是源操作数也是目的操作数。 大小写字母转换利用它们的ASCII 码相差 20H。 加减法不区别无符号数和有符号数,但根据运算结果分别设置标志寄存器的CF 和 OF 标志,可利用 CF 和 OF 进行区别。 逻辑与运算规则类似二进制的乘法,所以称其为逻辑乘。习题 3.3填空题(1)定义字节变量
20、的伪指令助记符是_,获取变量名所具有的偏移地址的操作符是_。(2)计算机中有一个“01100001”编码。如果把它认为是无符号数,它是10 进制数 _;如果认为它是BCD 码,则表示真值_;又如果它是某个ASCII 码,则代表字符_。(3)C 语言用“ n”表示让光标回到下一行首位,在汇编语言中需要输出两个控制字符:一个是回车,其ASCII码是 _,它将光标移动到当前所在行的首位;另一个是换行,其ASCII码是_,它将光标移到下一行。(4)数据段有语句“H8843 DWORD 99008843H”,代码段指令“MOV CX, WORD PTR H8843”执行后, CX _。(5)用 DWOR
21、D定义的一个变量XYZ ,它的类型是 _,用“ TYPE XYZ ”会得到数值为_。如果将其以字量使用,应该用_说明。(6) 数据段有语句“ABC BYTE 1,2,3 ” , 代码段指令“MOV CL, ABC+2” 执行后,CL _。(7)例题 3-9 的 TAB 定义如果是“ 1234567890”,则显示结果是_。(8) 指令 “XOR EAX, EAX” 和 “SUB EAX, EAX” 执行后,EAX _, CF OF_。而指令“ MOV EAX, 0 ”执行后, EAX _,CF 和 OF 没有变化。(9)例题 3-15 程序执行结束,变量QVAR 内容是 _;BCD 内容是 _
22、。(10)欲将 EDX 内的无符号数除以16,使用指令“ SHR EDX, _ ”,其中后一个操作数是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 27 页 - - - - - - - - - 6一个立即数。解答 BYTE ,OFFSET 97,61,小写字母a 0DH (13), 0AH (10) 8843H DWORD ,4, WORD PTR XYZ 3 78894111 0,0,0 0123456788765432H,83H 4 习题 3.4下列十六进制数表示无
23、符号整数,请转换为十进制形式的真值: FFH 0H 5EH EFH 解答 255 0 94 239 习题 3.7将下列十进制数用8 位二进制补码表示: 0 127 127 57 解答 00000000 01111111 10000001 11000111 习题 3.8进行十六进制数据的加减运算,并说明是否有进位或借位: 1234H7802H F034H 5AB0H C051H1234H 9876HABCDH 解答 1234H7802H8A36H ,无进位 F034H 5AB0H 4AF4H ,有进位 C051H1234HBE1DH ,无借位 9876HABCDH ECA9H ,有借位习题 3.
24、9数码 09、大写字母 AZ、小写字母az 对应的 ASCII 码分别是多少?ASCII 码 0DH 和 0AH 分别对应什么字符?解答数码 09 对应的 ASCII 码依次是30H39H。大写字母 AZ 对应的 ASCII 码依次是: 41H5AH 。小写字母 az 对应的 ASCII 码依次是: 617AH 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 27 页 - - - - - - - - - 7ASCII 码 0DH 和 0AH 分别对应的是回车和换行字符。
25、习题 3.10设置一个数据段,按照如下要求定义变量或符号常量: my1b 为字符串变量:Personal Computer my2b 为用十进制数表示的字节变量:20 my3b 为用十六进制数表示的字节变量:20 my4b 为用二进制数表示的字节变量:20 my5w 为 20 个未赋值的字变量 my6c 为 100 的常量 my7c 表示字符串: Personal Computer 解答my1b byte Personal Computer my2b byte 20 my3b byte 14h my4b byte 00010100b my5w word 20 dup(?) my6c = 100
26、 my7c equ 习题 3.16使用若干 MOV 指令实现交互指令“XCHG EBX,EDI”功能。解答push eax ; 可以没有mov eax,ebx mov ebx,edi mov edi,eax pop eax ; 可以没有习题 3.17假设当前 ESP0012FFB0H ,说明下面每条指令后,ESP 等于多少?push eax push dx push dword ptr 0f79h pop eax pop word ptr bx pop ebx 解答ESP0012FFACH ESP0012FFAAH ESP0012FFA6H ESP0012FFAAH ESP0012FFACH
27、ESP0012FFB0H 习题 3.19请分别用一条汇编语言指令完成如下功能:(1)把 EBX 寄存器和 EDX 寄存器的内容相加,结果存入EDX 寄存器。(2)用寄存器EBX 和 ESI 的基址变址寻址方式把存储器的一个字节与AL 寄存器的内容相加,并把结果送到AL 中。(3)用 EBX 和位移量0B2H 的寄存器相对寻址方式把存储器中的一个双字和ECX 寄存器的内容相名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 27 页 - - - - - - - - - 8加,并
28、把结果送回存储器中。(4)将 32 位变量 VARD 与数 3412H 相加,并把结果送回该存储单元中。(5)把数 0A0H 与 EAX 寄存器的内容相加,并把结果送回EAX 中。解答 add edx,ebx add al,ebx+esi add bx+0b2h,cx add varw,3412h add eax,0a0h 习题 3.21给出下列各条指令执行后AL 值,以及CF、ZF、SF、OF 和 PF 的状态:mov al,89h add al,al add al,9dh cmp al,0bch sub al,al dec al inc al 解答mov al,89h ; AL 89H C
29、F ZF SF OF PF add al,al ; AL 12H 1 0 0 1 1 add al,9dh ; AL 0AFH 0 0 1 0 1 cmp al,0bch ; AL 0AFH 1 0 1 0 1 sub al,al ; AL 00H 0 1 0 0 1 dec al ; AL 0FFH 0 0 1 0 1 inc al ; AL 00H 0 1 0 0 1 习题 3.28编程将一个压缩BCD 码变量(例如92H)转换为对应的ASCII 码,然后调用DISPC 子程序(在输入输出子程序库中)显示。解答; 数据段bcd byte 92h ; 代码段mov al,bcd shr al
30、,4 add al,30h call dispc mov al,bcd and al,0fh add al,30h call dispc 第 4 章 汇编语言程序设计习题 4.1简答题(1)是什么特点决定了目标地址的相对寻址方式应用最多?(2)什么是奇偶校验?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 27 页 - - - - - - - - - 9(3)为什么判断无符号数大小和有符号大小的条件转移指令不同?(4)双分支结构中两个分支体之间的JMP 指令有什么作用?(
31、5)为什么特别强调为子程序加上必要的注释?(6)子程序采用堆栈传递参数,为什么要特别注意堆栈平衡问题?(7)参数传递的“传值”和“传址”有什么区别?(8)INCLUDE语句和 INCLUDELIB有什么区别?(9)混合编程有什么优势?(10)运行 Windows 程序,有时为什么会提示某个DLL 文件不存在?解答 当同一个程序被操作系统安排到不同的存储区域执行时,指令间的位移没有改变,目标地址采用相对寻址可方便操作系统的灵活调度。 数据通信时,数据的某一位用做传输数据的奇偶校验位,数据中包括校验位在内的“1”的个数恒为奇数,就是奇校验;恒为偶数,就是偶校验。 无符号数和有符号数的操作影响两组不
32、同的标志状态位,故判断两个无符号数和有符号数的大小关系要利用不同的标志位组合,所以有对应的两组指令。 双分支结构中两个分支体之间的JMP 指令,用于实现结束前一个分支回到共同的出口作用。 完整的子程序注释可方便程序员调用该子程序,子程序注释包括子程序名、子程序功能、入口参数和出口参数、调用注意事项和其他说明等。 子程序保持堆栈平衡,才能保证执行RET指令时当前栈顶的内容是正确的返回地址。主程序也要保持堆栈平衡,这样才能释放传递参数占用的堆栈空间,否则多次调用该子程序可能就致使堆栈溢出。 “传值”是传递参数的一个拷贝,被调用程序改变这个参数不影响调用程序;“传址”时,被调用程序可能修改通过地址引
33、用的变量内容。 INCLUDE语句包含的是文本文件、是源程序文件的一部分;INCLUDELIB语句包含的是子程序库文件。 取长补短。 Windows 程序在运行时需要加载其配套的动态链接库DLL文件,当其没有被搜索到时就会提示不存在。习题 4.3填空题(1)JMP 指令根据目标地址的转移范围和寻址方式,可以分成四种类型:段内转移、_,段内转移、 _和段间转移、 _,段间转移、 _。(2) 假设在平展存储模型下, EBX 1256H, 双字变量 TABLE的偏移地址是20A1H , 线性地址 32F7H处存放 3280H,执行指令“ JMP EBX ” 后 EIP _,执行指令“ JMP TAB
34、LEEBX”后 EIP _。(3)“ CMP EAX,3721H ”指令之后是JZ 指令,发生转移的条件是EAX _,此时 ZF_。(4)小写字母“ e”是英文当中出现频率最高的字母。如果某个英文文档利用例题4-11 的异或方法进行简单加密, 统计发现密文中字节数据“8FH ”最多,你判断该程序采用的字节密码可能是_。(5)循环结构程序一般有三个部分组成,它们是_,循环体和 _部分。(6)例题 4-14 程序中的RET 指令,如果用POP EBP 指令和 JMP EBP 指令替换,此时EBP 内容是_。(7)过程定义开始是“TEST PROC ”语句,则过程定义结束的语句是_。宏定义开始是“D
35、ISP MACRO”语句,则宏定义结束的语句是_。(8)利用堆栈传递子程序参数的方法是固定的,例如寻址堆栈段数据的寄存器是_。(9)MASM汇编语言中,声明一个共用的变量应使用_伪指令;而使用外部变量要使用_伪指令声明。(10)调用 ReadConsole 函数时,用户在键盘上按下数字8,然后回车,则键盘缓冲区的内容依次是_。解答名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 27 页 - - - - - - - - - 10 相对寻址,间接寻址,直接寻址,间接寻址 1
36、256H,3280H 3721H,1 EAH 循环初始,循环控制 REPT1 标号的地址 TEST ENDP ,ENDM EBP PUBLIC ,EXTERN 38H 0DH 0AH 习题 4.6执行如下程序片断后,CMP 指令分别使得5 个状态标志CF、ZF 、SF、OF 和 PF 为 0 还是为 1?它会使得哪些条件转移指令指令Jcc 的条件成立、发生转移?mov eax,20h cmp eax,80h 解答CF1 ZF 0 SF1 OF0 PF1 可以使得条件成立、发生转移的指令有:JC JS JP JNZ JNO 习题 4.9指令 CDQ 将 EAX 符号扩展到EDX ,即: EAX
37、最高为 0,则 EDX 0;EAX 最高为 1,则 EDX FFFFFFFFH 。请编程实现该指令功能。解答 1test eax,8000h ; 测试最高位jz next1 ; 最高位为 0(ZF1),转移到标号NEXT1 mov edx,0ffffffffh ; 最高位为 1,顺序执行:设置EDX FFFFFFFFH jmp done ; 无条件转移,跳过另一个分支next1: mov dx,0 ; 最高位为 0 转移到此执行:设置EDX 0 done: 解答 2使用移位指令更好。rol eax,1 rcr edx,1 sar edx,31 ror eax,1 习题 4.11编写一个程序,先
38、提示输入数字“Input Number:09”,然后在下一行显示输入的数字,结束;如果不是键入了09 数字,就提示错误“Error! ”,继续等待输入数字。解答; 数据段inmsg byte Input number(09): ,0 ermsg byte 0dh,0ah,Error! Input again: ,0 ; 代码段mov eax,offset inmsg ; 提示输入数字call dispmsg again: call readc ; 等待按键cmp al,0 ; 数字 9 ?ja erdisp call dispcrlf call dispc jmp done erdisp: m
39、ov eax,offset ermsg call dispmsg jmp again done: 习题 4.12有一个首地址为ARRAY 的 20 个双字的数组,说明下列程序段的功能。mov ecx,20 mov eax,0 mov esi,eax sumlp: add eax,arrayesi add esi,4 loop sumlp mov total,eax 解答求这 20 个双字的和,保存在TOTAL变量,不关进心进位和溢出。习题 4.22编写一个子程序,它以二进制形式显示EAX 中 32 位数据,并设计一个主程序验证。解答; 代码段,主程序mov eax,8F98FF00H call
40、 dispbd ; 调用子程序; 代码段,子程序dispbd proc ; 32位二进制数的输出push ecx push edx mov ecx,32 ; 要输出的字符个数dbd: rol eax,1 ; AL循环左移一位push eax and al,01h ; 取 AL 最低位add al,30h ; 转化成相应的ASCLL码值call dispc ; 以二进制的形式显示pop eax loop dbd pop edx pop ecx ret dispbd endp 习题 4.26编制 3 个子程序把一个32 位二进制数用8 位十六进制形式在屏幕上显示出来,分别运用如下3 种参数传递方法
41、,并配合3 个主程序验证它。(1)采用 EAX 寄存器传递这个32 位二进制数(2)采用 temp 变量传递这个32 位二进制数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 27 页 - - - - - - - - - 12(3)采用堆栈方法传递这个32 位二进制数解答(1); 数据段wvar word 307281AFH ; 代码段,主程序mov eax,wvar call disp mov al,H call dispc ; 代码段,子程序disp proc pu
42、sh ebx push ecx mov ecx,8 ; 8位dhw1: rol eax,4 mov ebx,eax and al,0fh ; 转换为 ASCII 码add al,30h cmp al,9 jbe dhw2 add al,7 dhw2: call dispc mov eax,ebx loop dhw1 pop ecx pop ebx ret disp endp (2); 数据段wvar word 307281AFH temp word ? ; 代码段,主程序mov eax,wvar mov temp,eax call disp mov al,H call dispc ; 代码段,
43、子程序disp proc push ebx push ecx mov ecx,8 ; 8位mov eax,temp dhw1: rol eax,4 mov ebx,eax 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 27 页 - - - - - - - - - 13and al,0fh ; 转换为 ASCII 码add al,30h cmp al,9 jbe dhw2 add al,7 dhw2: call dispc ; 显示一个字符mov eax,ebx loo
44、p dhw1 pop ecx pop ebx ret disp endp (3); 数据段wvar word 307281AFH ; 代码段,主程序push wvar call disp add esp,4 mov al,H call dispc ; 代码段,子程序disp proc push ebp mov ebp,esp push ebx push ecx mov ecx,8 ; 8位mov eax,ebp+8 dhw1: rol eax,4 mov ebx,eax and al,0fh ; 转换为 ASCII 码add al,30h cmp al,9 jbe dhw2 add al,7
45、dhw2: call dispc mov eax,ebx loop dhw1 pop ecx pop ebx pop ebp ret disp endp 习题 4. 31 区别如下概念:宏定义、宏调用、宏指令、宏展开、宏汇编。解答名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 27 页 - - - - - - - - - 14宏定义:就是对宏进行说明,由一对宏汇编伪指令MACRO和 ENDM 来完成。宏调用:宏定义之后的使用。在使用宏指令的位置写下宏名,后跟实体参数。宏
46、指令:使用宏时,其形式很像指令,所以称为宏指令。宏展开:在汇编时,汇编程序用对应的代码序列替代宏指令。宏汇编:指使用宏的方法进行汇编语言程序设计。第 5 章 微机总线习题 5.1简答题(1)为什么称处理器的数据总线是双向的?(2)8086 的地址和数据总线为什么要分时复用?(3)具有三态能力的引脚输出高阻意味着什么?(4)总线周期中的等待状态是个什么工作状态?(5)猝发传送是一种什么传送?(6)总线数据传输为什么要进行总线仲裁?(7)异步时序为什么可以没有总线时钟信号?(8)32 位 PC 机为什么采用多级总线结构,而不是单总线结构?(9)USB 总线有几个导线组成?(10)什么是微软宣称的即
47、插即用PnP(Plug-and-Play )技术?解答 数据总线承担着处理器与存储器、外设之间的数据交换,既可以输入也可以输出,故其是双向的。 为减少引脚个数, 8086 采用了地址总线和数据总线分时复用。即数据总线在不同时刻还具有地址总线的功能。 具有三态能力的引脚当输出呈现高阻状态时,相当于连接了一个阻抗很高的外部器件,信号无法正常输出;即放弃对该引脚的控制,与其他部件断开连接。 处理器的运行速度远远快于存储器和I/O 端口。处理器检测到存储器或I/O 端口不能按基本的总线周期进行数据交换时,插入一个等待状态Tw 。等待状态实际上是一个保持总线信号状态不变的时钟周期。 猝发传送是处理器只提
48、供首地址、但可以从后续连续的存储单元中读写多个数据。 总线上可能连接多个需要控制总线的主设备,需要确定当前需要控制总线的主设备,所以需要总线仲裁。 异步时序是由总线握手(Handshake )联络(应答)信号控制,不是由总线时钟控制。故总线时钟信号可有可无。 单总线结构限制了许多需要高速传输速度的部件。32 位 PC 机采用多种总线并存的系统结构。各种专用局部总线源于处理器芯片总线,以接近处理器芯片引脚的速度传输数据,它为高速外设提供速度快、性能高的共用通道。 4 个。 即插即用技术是指32 位 PC 机的主板、操作系统和总线设备配合,实现自动配置功能。习题 5.3填空题(1)某个处理器具有1
49、6 个地址总线,通常可以用A_表达最低位地址信号,用A15 表达最高地址信号。(2)8086 有 3 个最基本的读写控制信号,它们是IO/M,_和_。(3)8086 预取指令时,在其引脚上将产生_总线操作;执行指令“MOV AX, BX”时,在其引脚上将产生_总线操作;执行指令“MOV BX, AX”时,在其引脚上将产生_总线操作。(4)8086 无等待的总线周期由_个 T 状态组成, Pentium 无等待的总线周期由_个 T 状态组成。如果处理器的时钟频率为100MHz ,则每个 T 状态的持续时间为_。(5)8086 处理器进行I/O读操作时,其引脚IO/M为低,引脚RD为_; ISA
50、总线的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 27 页 - - - - - - - - - 15_引脚低有效说明进行I/O 读操作。PCI 总线用 C/BE3:0# 引脚编码为 _表示 I/O 读总线周期。(6)占用总线进行数据传输,一般需要经过总线请求和仲裁、_、_和结束 4 个阶段。(7)USB 总线理论上最多能够连接_个 USB 设备, USB 2.0 支持低速 _、全速_和高速 480Mb/s 三种速率。(8)PCI 总线共用数据和地址信号,所以数据传输