计算机组成原理习题与解答第七章

更新时间:2023-11-18 01:24:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

9.按下面的要求写出程序的框架

(1)数据段的位置从0E000H开始,数据段中定义一个100字节的数组,其类型属性既是字又是字节;

(2)堆栈段从小段开始,段组名(类别名)为STACK;

(3)代码段中指定段寄存器,指定主程序从1000H开始,给有关段寄存器赋值; (4)程序结束。 答:所求程序框架为: Data SEGMENT AT 0E000H Arr_w LABEL WORD Arr_b DB 100 DUP(?) Data ENDS

Sta_seg SEGMENT PARA ‘STACK’ DB 80 DUP(?) Top LABEL WORD Sta_seg ENDS Code SEGMENT

ASSUME CS:Code,DS:data,SS:sta_seg ORG 1000H Start: MOV AX, data MOV DS, AX MOV AX,Sta_seg MOV SS, AX

MOV SP, OFFSET Top …… MOV AH, 4CH INT 21H Code ENDS END Start

10.编写一个程序,要求运行时屏幕显示‘BELL’,同时响铃一次(响铃的ASCII码为07)。 答:所求程序为: Code SEGMENT ASSUME CS:code Start: MOV DL, 42H MOV AH, 2 INT 21H MOV DL, 45H MOV AH, 2 INT 21H MOV DL, 4CH MOV AH, 2 INT 21H

MOV DL, 4CH MOV AH, 2 INT 21H MOV DL, 7 MOV AH, 2 INT 21H MOV AH, 4CH INT 21H Code ENDS END Start

11.假设在数据段X_SEG、附加段Y_SEG和堆栈段Z_SEG中分别定义了字变量X、Y和Z,试编制一完整的程序计算 X+Y+Z,并将结果送X。 答:所求程序为:

X_SEG SEGMENT X DW 12eH X_SEG ENDS Y_SEG SEGMENT Y DW 4d2H Y_SEG ENDS

Z_SEG SEGMENT STACK ‘STACK’

Z DW 2CAH Z_SEG ENDS Code SEGMENT

ASSUME CS:Code,DS:X_SEG,ES:Y_SEG,SS:Z_SEG Start: MOV AX, X_SEG MOV DS, AX

MOV AX, Y_SEG MOV ES, AX MOV AX,ES:Y ADD X, AX MOV BP, 0 MOV AX, [BP+Z] ADD X, AX MOV AH, 4CH INT 21H

Code ENDS END Start

12.写一个完整的程序放在代码段C_SEG中,要求把数据段D_SEG中的DADD1和附加段E_SEG中的DADD2相加,并把结果存放在D_SEG段中的SUM中。其中DADD1、DADD2和SUM均为双字类型,DADD1赋值为98765,DADD2赋值为-15893。

答:所求程序为:

D_SEG SEGMENT DADD1 DD 98765 SUM DD ? D_SEG ENDS E_SEG SEGMENT DADD2 DD -15893 E_SEG ENDS C_SEG SEGMENT

ASSUME CS: C_SEG,DS:D_SEG,ES:E_SEG Start: MOV AX, D_SEG MOV DS, AX MOV AX, E_SEG MOV ES, AX

MOV AX,WORD PTR DADD1 MOV BX,WORD PTR DADD1+2 ADD AX, WORD PTR ES:DADD2 ADC BX, WORD PTR ES:DADD2+2 MOV WORD PTR SUM, AX MOV WORD PTR SUM+2, BX

MOV AH, 4CH INT 21H

C_SEG ENDS END Start

本文来源:https://www.bwwdw.com/article/k2vv.html

Top