当前位置:文档之家› 第5章 指令系统习题

第5章 指令系统习题

第5章指令系统〔习题5.1〕简答题(1)定长指令字和定长操作码是一回事吗?(2)什么是Load-Store指令集结构?(3)为什么将查找操作数的方法称为数据寻“址”方式?(4)是什么特点决定了目标地址的相对寻址方式应用最多?(5)堆栈的存取原则是什么?(6)IA-32处理器的INC,DEC,NEG和NOT都是单操作数指令,这个操作数应该是源操作数还是目的操作数?(7)IA-32处理器的乘除法运算针对无符号数和有符号数,有两种不同的指令。

只有一种指令的加减法如何区别无符号数和有符号数运算?(8)为什么判断无符号数大小和有符号大小的条件转移指令不同?(9)汇编语言的标识符大小写不敏感意味着什么?(10)为什么说RISC是计算机结构上的革新?〔习题5.2〕判断题(1)存储器寻址方式的操作数当然在主存了。

(2)堆栈的操作原则是“先进后出”,压入数据是PUSH指令、弹出数据是POP指令。

(3)空操作NOP指令其实根本没有指令。

(4)指令指针或者还包括代码段寄存器值的改变将引起程序流程的改变。

(5)JMP指令对应高级语言的GOTO语句,所以不应使用。

(6)IA-32处理器的条件转移指令Jcc要利用标志作为条件。

(7)处理器的传送指令MOV属于汇编语言的执行性语句。

(8)MASM汇编语言的注释用分号开始,但不能用中文分号。

(9)通常,RISC处理器只有“取数LOAD”和“存数STORE”指令访问存储器。

(10)RISC的指令条数少、指令简单、格式固定,所以编译程序也就容易实现,并且不需要优化。

〔习题5.3〕填空题(1)JMP指令根据目标地址的转移范围和寻址方式,可以分成四种类型:段内转移、__________,段内转移、__________和段间转移、__________,段间转移、__________。

(2)IA-32处理器将ESI寄存器内容压入堆栈的指令是__________,将堆栈顶部数据弹出到EDI寄存器的指令是__________。

(3)IA-32处理器的指令“XOR EAX, EAX”和“SUB EAX, EAX”执行后,EAX=__________,CF=OF=__________。

而指令“MOV EAX, 0”执行后,EAX=__________,CF和OF没有变化。

(4)欲将EDX内的无符号数除以16,可以使用指令“SHR EDX, __________”,其中后一个操作数是一个立即数。

(5)“CMP EAX,3721H”指令之后是JZ指令,发生转移的条件是EAX=__________,此时ZF=__________。

(6)主程序调用子程序需要用__________指令,子程序最后的返回指令是__________。

(7)在IA-32指令“ADD EDX,5”中,指令助记符是__________,目的操作数是__________,另一个操作数采用__________寻址方式。

(8)MASM要求汇编语言源程序文件的扩展名是___________,汇编产生扩展名为OBJ的文件被称为___________文件,连接后生成的EXE可执行文件。

(9)CISC是英文__________的缩写,常被为__________。

对应RISC中的R来自英文__________,含义是__________。

IA-32处理器属于__________结构,MIPS处理器属于__________结构。

(10)MIPS处理器有___________个通用寄存器,其中___________总是0。

〔习题5.4〕给出IA-32处理器的32位寻址方式和16位寻址方式的组成公式,并说明各部分作用。

〔习题5.5〕说明下列IA-32处理器指令中源操作数的寻址方式,假设VARD是一个32位变量。

(1)mov edx,1234h(2)mov edx,vard(3)mov edx,ebx(4)mov edx,[ebx](5)mov edx,[ebx+1234h](6)mov edx,vard[ebx](7)mov edx,[ebx+edi](8)mov edx,[ebx+edi+1234h](9)mov edx,vard[esi+edi](10)mov edx,[ebp*4]〔习题5.6〕指出数据寻址的寄存器寻址和寄存器间接寻址的不同之处,比较数据寻址中存储器的直接寻址、间接寻址与指令寻址中的直接寻址、间接寻址。

〔习题5.7〕请分别用一条IA-32处理器指令完成如下功能:(1)把EBX寄存器和EDX寄存器的内容相加,结果存入EDX寄存器。

(2)用寄存器EBX和ESI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。

(3)用EBX和位移量0B2H的寄存器相对寻址方式把存储器中的一个双字和ECX寄存器的内容相加,并把结果送回存储器中。

(4)将32位变量VARD与数3412H相加,并把结果送回该存储单元中。

(5)把数0A0H与EAX寄存器的内容相加,并把结果送回EAX中。

〔习题5.8〕分别执行如下程序片断,说明每条指令的执行结果:(1)mov eax,80h ; EAX=__________add eax,3 ; EAX=__________,CF=__________,SF=__________add eax,80h ; EAX=__________,CF=__________,OF=__________adc eax,3 ; EAX=__________,CF=__________,ZF=__________ (2)mov eax,100 ; EAX=__________add ax,200 ; EAX=__________,CF=__________(3)mov eax,100 ; EAX=__________add al,200 ; EAX=__________,CF=__________(4)mov al,7fh ; AL=__________sub al,8 ; AL=__________,CF=__________,SF=__________sub al,80h ; AL=__________,CF=__________,OF=__________sbb al,3 ; AL=__________,CF=__________,ZF=__________〔习题5.9〕分别执行如下程序片断,说明每条指令的执行结果:(1)mov esi,10011100b ; ESI=__________Hand esi,80h ; ESI=__________Hor esi,7fh ; ESI=__________Hxor esi,0feh ; ESI=__________H(2)mov eax,1010b ; EAX=__________Bshr eax,2 ; EAX=__________B,CF=__________shl eax,1 ; EAX=__________B,CF=__________and eax,3 ; EAX=__________B,CF=__________(3)mov eax,1011b ; EAX=__________Brol eax,2 ; EAX=__________B,CF=__________rcr eax,1 ; EAX=__________B,CF=__________or eax,3 ; EAX=__________B,CF=__________(4)xor eax,eax ; EAX=__________,CF=__________,OF=__________; ZF=__________,SF=__________,PF=__________〔习题5.10〕执行如下程序片断后,CMP指令分别使得5个状态标志CF、ZF、SF、OF和PF为0还是为1?它会使得哪些条件转移指令指令Jcc的条件成立、发生转移?mov eax,20hcmp eax,80h〔习题5.11〕汇编语句有哪两种,每个语句由哪4个部分组成?〔习题5.12〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。

〔习题5.13〕本章例题程序片段可以形成可执行文件。

为了能够有交互效果,可以利用配套软件包中的子程序。

例如,只要在例题5-1和例题5-3程序片段最后增加如下语句,就可以显示结果。

call dispuid其中,子程序DISPUID以无符号十进制形式显示EAX寄存器内容。

请按照汇编语言的源程序框架将程序片段填入代码段,然后生成一个可执行文件。

〔习题5.14〕如下修改例题5-2程序,实现了将键盘输入的小写字母转换为大写显示:again: call readc ; 键盘输入一个字符。

语句1cmp al,'a’; 语句2jb again ; 语句3cmp al,'z’; 语句4ja again ; 语句5sub al,20h ; 语句6call dispc ; 显示一个字符。

语句7其中,子程序READC让用户从键盘按下一个字符,保存在AL寄存器;子程序DISPC将AL寄存器的字符显示。

(1)请将上述程序片段填入源程序框架、生成可执行文件。

(2)分析并验证如果输入了非小写字母(例如数字7)、然后输入小写字母,程序执行流程(给出执行语句的编号)。

(3)如果要实现输入大写字母转换为小写显示,如何修改上述程序?〔习题5.15〕RISC技术有哪些方面的主要特色?〔习题5.16〕从通用寄存器、数据寻址、指令格式等方面,比较IA-32处理器和MIPS处理器,说明各自特点。

相关主题