第7章习题指导
一、假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。
1、设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令最多有几种:
解答:根据操作数地址码为6位,则二地址指令中操作码的位数为16 – 6 – 6 = 4。这4位操作码可有24=16种操作。由于操作码固定,则除去了零地址指令P种,一地址指令Q种,剩下二地址指令最多有16 – P – Q种。
2、采用扩展操作码技术,若二地址指令有X种,零地址指令有Y种,则一地址指令最多有几种:
解答:采用扩展操作码技术,操作码位数可变,则二地址、一地址和零地址的操作码长度分别为4位、10位和16位。可见二地址指令操作码每减少一种,就可多构成26种一地址指令操作码;一地址指令操作码每减少一种,就可多构成26种零地址指令操作码。
因二地址指令有X种,则一地址指令最多有24 X×26种。设一地址指令有M种,则零地址指令最多有24 X×26 M()[()]×26种。根据题中给出零地址指令有Y种,即Y=(24 X)×26 M[]×26,则一地址指令 M=24 X×26 Y×26。
二、设相对寻址的转移指令占3个字节,第一字节为操作码,第二、三字节为相对位移量(补码表示),而且数据在存储器中采用以低字节地址为字地址的存放方式。每当CPU从存储器取出一个字节时,即自动完成 (PC) + 1 → PC。
1、若PC当前值为240(十进制),要求转移到290(十进制),则转移指令的第二、三字节的机器代码是:
解答:PC当前值为240,该指令取出后PC值为243,要求转移到290,即相对位移量为290 –243 = ()47,转换成补码为2FH。由于数据在存储器中采用以低字节地址为字地址的存放方式,故该转移指令的第二字节为2FH,第三字节为00H。
2、若PC当前值为240(十进制),要求转移到200(十进制),则转移指令的第二、三字节的机器代码是:
解答:PC当前值为240,该指令取出后PC值为243,要求转移到200,即相对位移量为200 – 243= – 43,转换成补码为D5H,由于数据在存储器中采用以低字节地址为字地址的存放方式,故该转移指令的第二字节为D5H,第三字节为FFH。
三、设某机共能完成110种操作,CPU有8个通用寄存器(16位),主存容量为4M字,采用寄存器 存储器型指令。
1、欲使指令可直接访问主存的任一地址,指令字长应取多少位,画出指令格式:
解答:欲使指令可直接访问4M字存储器的任一单元,采用寄存器 存储器型指令,该机指令应包括22位的地址码、3位寄存器编号和7位操作码,即指令字长取22 + 3 + 7 =32位,指令格式为7322A。
2、若在上述设计的指令字中设置一寻址特征位X,且X = 1表示某个寄存器作基址寄存器,画出指令格式。试问基址寻址可否访问主存的任一单元,为什么,如不能,提出一种方案,使其可访问主存的任一位置:
解答:上述指令格式中增设一寻址特征位,且X = 1表示某个寄存器作基址寄存器RB。其指令格式为731318XRB由于通用寄存器仅16位,形式地址18位,不足以覆盖4M地址空间。
可将RB寄存器内容左移6位,低位补0,形成22位基地址,然后与形式地址相加,所得的有效地址即可访问4M字存储器的任一单元。
3、若主存容量扩大到4G字,且存储字长等于指令字长,则在不改变上述硬件结构的前提下,可采用什么方法使指令可访问存储器的任一位置:
解答:若主存容量扩大到4G字,且存储字长等于指令字长,则在不改变上述硬件结构的前提下,采用一次间址即可访问存储器的任一单元,因为间址后得到的有效地址为32位,232=4G。
四、某机主存容量为4M×16位,且存储字长等于指令字长,若该机指令系统能完成97种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式。
1、画出一地址指令格式并指出各字段的作用:
解答:一地址指令格式为 OP 操作码字段,共7位,可反映97种操作;M 寻址方式特征字段,共3位,可反映6种寻址方式;A 形式地址字段,共16 – 7 – 3 = 6位。
2、该指令直接寻址的最大范围:
解答:直接寻址的最大范围为26 = 64。
五、设某机配有基址寄存器和变址寄存器,采用一地址格式的指令系统,允许直接和间接寻址,且指令字长、机器字长和存储字长均为16位。
1、若采用单字长指令,共能完成105种操作,则指令可直接寻址的范围是多少。一次间址的寻址范围是多少,画出其指令格式并说明各字段的含义:
在单字长指令中,根据能完成105种操作,取操作码7位。因允许直接和间接寻址,且有基址寄存器和变址寄存器,故取2位寻址特征位,其指令格式为:727 其中OP为操作码,可完成105种操作.
M为寻址特征,可反映四种寻址方式;AD为形式地址。 这种指令格式可直接寻址27 = 128,一次间址的寻址范围是216 = 65536。
2、若存储字长不变,可采用什么方法直接访问容量为16MB的主存:
容量为16MB的存储器,正好与存储字长为16位的8M存储器容量相等,即16MB=8M×16位。欲使指令直接访问16MB 的主存,可采用双字长指令。
其操作码和寻址特征位均不变,其格式为7 2 7 AD1AD2,其中形式地址为AD1∥AD2,7+16=23位。223=8M,即可直接访问主存的任一位置。
《汇编语言程序设计》复习题答案求救,分析题!高分,谢谢!
六.程序填空 第一空 0FH 第二空 4AH.这一题的基本思想就是把 BX 循环右移四位,取BL,赋给AL,与上0FH,把高四位清零,得低四位,再加上30H,判断是否超过A,因为A的ASCLL与0-9的ASCLL码不是连续的,所以要根据判断结果再加上07H,就这样了。我原是汇编科代表呢!!哈哈 ...
汇编语言程序设计习题解答
解答:一地址指令格式为 OP 操作码字段,共7位,可反映97种操作;M 寻址方式特征字段,共3位,可反映6种寻址方式;A 形式地址字段,共16 – 7 – 3 = 6位。2、该指令直接寻址的最大范围:解答:直接寻址的最大范围为26 = 64。五、设某机配有基址寄存器和变址寄存器,采用一地址格式的指令系...
汇编语言的一些程序设计题,谁能举例解答一下
你的问题问的不对,寄存机 AX BX CX DX就是具体的数据,你可以把这些当成变量使用 a,b,c,d在程序中是分配的内存空间,和寄存器存在着本质上的区别,所以这些题目使用的数据就是:AX,BX,CX,DX这些寄存器数据 1、交换可以用堆栈进行,AX。BX相互交换内容 PUSH AX PUSH BX POP AX POP BX 这样AX...
汇编语言程序设计提问
1.ax和bl类型(长度)不同 2.cs不能作为目的操作数 3. inc的操作数应是一个寄存器或内存单元,执行结果是将其内容加1 4.不能直接把立即数传送到段寄存器中,可以改为 mov ax,2000H mov dx,ax 5.add的源操作数不能是段寄存器,只能是通用寄存器、立即数或存储器 6.寄存器间接寻址的寄存器只...
汇编语言程序设计题目,在线等答案!!!急!
MOV CL, 4 SHR AL, CL ;左移4位.MOV CL, AL MOV AL, B ;取来B AND AL, 00001111B ADD AL, CL ;合成.MOV C, AL ;保存.END ;--- 15.比较两个变量A和B的大小,在屏幕上显示比较结果.(A>B、A<B );---...
汇编语言程序设计_汇编语言程序设计第五版答案钱晓捷
汇编语言:()是面向机器的程序设计语言。汇编:把汇编语言翻译成机器语言的过程称为汇编。汇编程序:把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向机器的语言,...
《汇编语言程序设计》 题目解答
MOV AX,-100H MOV BX,16 IMUL BX (1)执行后,AX=F000H,BX=16,DX=FFFFH (2)若将IMUL改为MUL则执行完后,AX=1600H,BX=16,DX=000BH 6、下面程序段中每条指令执行完后,AX的内容是什么(十六进制)?MOV AX,0;AX=0000H DEC AX;AX=FFFFH ADD AX,3;AX=0002H NOT AX;AX=FFFDH XCH...
汇编语言程序设计填空题和问答题部分
1.为零 2.偏移 3.4位 4.group name db(前两个不太确定,你再查一下吧)5.CX 6.CALL RET 7.MACRO ENDM 宏体 8.设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下的有效地址,填入括号中。A.使用D的直接寻址 (0A2B1H )B.使用BX的寄存器间接寻址 (1000H...
汇编语言程序设计问题求解
AX CALL DSPAX MOV AH,4CH INT 21H;=== DSPAX PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSHF
汇编语言程序设计题求高手
1.编写一个程序实现:在BUF开始的存储区中存放30个带符号数,试统计其正数、负数和零的个数,并将统计的个数分别放到PLUS、NEGATIVE、ZERO单元中。; 本程序通过编译,运行正确 Code Segment Assume CS:Code,DS:Code BUF db 23,-69,0,35,46,0,57,68,0,79,81,98,-43,251,21,15,-69,0,...