汇编语言作业参考答案

  • 格式:doc
  • 大小:74.50 KB
  • 文档页数:12

第一次 1. 微型计算机系统有哪三个层次,简述其内涵及其联系与区别 微处理器→微型计算机 →微型计算机系统 2. 试述冯诺依曼存储程序工作原理 存储程序工作原理是指把程序存储在计算机内,使计算机能像快速存取数据一样地快速存取组成程序的指令。为实现控制器自动连续地执行程序,必须先把程序和数据送到具有记忆功能的存储器中保存起来,然后给出程序中第一条指令的地址,控制器就可依据存储程序中的指令顺序周而复始地取指令、译码、执行,直到完成全部指令操作为止,即控制器通过指令流的串行驱动实现程序控制 3. 将二进制数11011.011转换成十进制数,八进制数和十六进制数 11011.011(B)=27.375(D)=33.3(O)=1B.6(H) 4. 将十进制数240.75转换成二进制数、八进制数和十六进制数 240.75(D)=11110000.11(B)=360.6(O)=F0.C(H) 5. 设计算机字长为8位,求机器数93(H)分别为原码、反码、补码、无符号数、压缩BCD码时对应的真值 93(H)=1001 0011(B) 93(H)为原码时,X=-001 0011(B)=-19(D) 93(H)为反码时,[X]原=1110 1100(B),X=-110 1100=-108(D) 93(H)为补码时,[X]原=1110 1101(B),X=-1 1101=-109(D) 93(H)为无符号数时,X= 93(H)=147(D) 93(H)为压缩BCD码时,X= 93(D) 6. 已知X=87,Y=-56,用补码完成下列运算,并讨论结果是否溢出 ①X+Y ②X-Y [X]补=0101 0111(B),[Y]补=1100 1000(B),[-Y]补=0011 1000(B) [X+Y]补=[X]补+[Y]补=0001 1111(B),有进位,无溢出 X+Y=31(D),结果正确

[X-Y]补=[X]补+[-Y]补=1000 1111,无进位,有溢出 X-Y=-113(D),结果错误(正确结果应为X-Y=143(D)) 7. 求-83.75的单精度浮点机器数 -83.75(D)=-101 0011.11(B)=-1.01001111(26 采用单精度浮点数表示, 符号位=1 偏置阶码=6(D)+127(D)=10000101(B) 尾数=01001111000000000000000 (-83.75(D)的单精度浮点机器数=1100 0010 1010 0111 1000 0000 0000 0000(B) =C2A78000(H)

第二次 1. 什么是计算机体系结构? 计算机体系结构包括两层含义。 狭义的定义为计算机体系结构是程序员所看到的系统的一些属性:概念性的结构和功能上的表现,这些属性既不同于数据流和控制的组织,也不同于逻辑设计和物理实现。这是从程序员,特别是汇编语言程序员的角度所看到的计算机系统的属性。 广义地看,计算机体系结构是连接硬件和软件的一门学科,它研究的内容不但涉及计算机硬件,也涉及计算机软件。 2. 简述Pentium微处理器的基本结构 略 3. Pentium微处理器的整数流水线是怎样工作的? Pentium微处理器包含两条整数流水线:U流水线和V流水线。 Pentium微处理器整数指令的执行要经过流水线中的五个操作步骤: PF(预取):处理器从代码cache中预取指令 D1(译码阶段1):处理器对指令译码确定操作码和寻址信息。在这个阶段还进行指令的成对性检查和分支预测 D2(译码阶段2):产生访问存储器的地址 EX(执行):处理器或者访问数据cache,或者利用ALU、筒型移位器或其他功能单元计算结果 WB(写回):利用指令运行结果更新寄存器和标志寄存器 4. 分支转移预测功能的意义是什么,试举例说明 略 5. 实模式下Pentium微处理器的堆栈操作是怎样进行的,试举例说明 略 6. 字ABCD(H)存放在地址为0A002 (H)的存储单元中,如何存放,是对准字还是非对准字?

CDAB0A0020A003

~

~~

~ 0A002能够被2整除,所以是对准字 7. 在实模式下,物理地址是如何形成的?计算下列逻辑地址对应的物理地址: 1000:1234 0100:ABCD 1000:1234 物理地址为11234H 0100:ABCD 物理地址为0BBCDH

第三次 教材P. 69-70 习题4.1-4.3 习题4.1 (1) MOV AL, [FIRST] XCHG AL, [SECOND] MOV [FIRST], AL MOV AL, [FIRST+1] XCHG AL, [SECOND+1] MOV [FIRST+1], AL 或 MOV AX, WORD PTR [FIRST] XCHG AX, WORD PTR [SECOND] MOV WORD PTR [FIRST], AX (2) PUSH WORD PTR [FIRST] PUSH WORD PTR [SECOND] POP WORD PTR [FIRST] POP WORD PTR [SECOND] 堆栈变化示意图略 习题4.2 数据段中TABLE在内存中的存放形式为:9EH, 00H, 02H, 01H, 66H, 01H 故程序执行后,AX=6601H 习题4.3 数据段中 XX DW ? DIVIDEND DD 1193182 DIVISOR DW 433 代码段中 MOV AX, WORD PTR DIVIDEND MOV DX, WORD PTR DIVIDEND+2 DIV DIVISOR MOV XX, AX

第四次 教材P. 69-70 习题4.4-4.8中任选3题 习题4.4 MOV CL, 4 SHL AH, CL MOV BL, 0FH AND AL, BL OR AH, AL 习题4.5 MOV CX, 8 MOV BL, 0 L1: SHL AL, 1 RCR BL ,1 LOOP L1 MOV AL, BL 习题4.6 (1) MOV BX, OFFSET BUF MOV SI, OFFSET PLUS MOV DI, OFFSET MINUS MOV CX, 50 L1: MOV AL, [BX] CMP AL ,0 JG JPLUS JL JMINUS JMP JLOOP JPLUS: MOV [SI], AL INC SI JMP JLOOP JMINUS: MOV [DI], AL INC DI JLOOP: INC BX LOOP L1

(2) MOV BX, OFFSET BUF MOV SI, OFFSET NOT0 MOV CX, 50 L1: MOV AL, [BX] CMP AL ,0 JZ JLOOP MOV [SI], AL INC SI JLOOP: INC BX LOOP L1 (3) 本程序片段将求得的绝对值送数据段ABS开始的单元中 MOV BX, OFFSET BUF MOV SI, OFFSET ABS MOV CX, 50 L1: MOV AL, [BX] CMP AL ,0 JGE JLOOP NEG AL JLOOP: MOV [SI], AL INC SI INC BX LOOP L1 (3) MOV EAX, DWORD PTR BUF CMP EAX ,0 JGE JNOTNEG NEG EAX JNOTNEG: … … 习题4.7 AL=17H 习题4.8 MOV AX, 1234H MOV DS, AX MOV SI, 0005H MOV AX, 2345H MOV ES, AX MOV DI, 0006H MOV CX, 400H ;1K字节 CLD REP MOVSB

第五次 1. 判断下面描述符所描述的段的性质 0123456700000000

01010000101100100000101000000000000000000000001111111111

P=1,段在内存中 S=1,为段描述符 DPL=1,段的特权级为1 A=0,段尚未被访问 E=0,为数据段 ED=0,段向上扩展 W=1,可写 G=0,段长以字节为单位 D=1,为32位指令方式 AVL=1,程序可用 段基址为000A0000H,段界限为003FFH。 2. 如果(GDTR)=0021000001FFH,那么GDT的起始地址和终止地址是什么?表长多少?表中能存放多少个描述符? GDT的起始地址为:00210000H; 终止地址为:002101FFH; 表长:01FFH+1=512; 表中能存放512/8=64个描述符。 3. 试述Pentium处理器的分页机制。如果允许分页,那么Pentium微处理器的地址空间可以分成多少页? 分页机制略。整个存储器有一个页目录,它最多有1024个页目录项,每个页目录项可含有1024个页面项,因此Pentium微处理器的地址空间可以分成10241024=1M个页。 4. 若将线性地址00200000H送给分页机制,那么将访问哪个页目录项,哪个页表项? 线性地址的格式为

Ä¿Â¼Ò³Æ«ÒÆÁ¿

31 22 21 12 11 0

00200000H=0000 0000 0010 0000 0000 0000 0000 0000B; 所以,将访问第0个页目录项,第512个页表项。 5. TLB的作用是什么? TLB(转换后援缓冲器)为一个Cache,其中保存了32个最近使用的页转换地址。若再次访问同样的存储区域,则不必再访问页目录和页表,可以加快程序的运行。 关于TLB的作用,再补充一些说明: