微机原理与汇编语言复习题及参考答案(3)

2018-11-17 22:00

编写的程序。

汇编程序的主要功能是将由汇编语言(助记符)编写的源程序翻译成用机器语言(二 进制代码)编写的目标程序;汇编源程序的作用是进行程序设计。

6.答:微型计算机的系统总线是CPU与其他部件之间传送数据、地址和控制信息的公共 通道。

根据传送内容的不同,系统总线可分成以下3种:

(1)数据总线DB(Data Bus):用于CPU与主存储器、CPU与I/O接口之间传送数据。数据总线的宽度等于计算机的字长。数据总线一般为双向总线,可以向两个方向传输数据。 (2)地址总线AB (Address Bus):用于CPU访问主存储器和外部设备时传送相关的地址。地址总线的宽度决定CPU的寻址能力。

(3)控制总线CB (Control Bus)用于传送CPU对主存储器和外部设备的控制信号。

7.答:宏与子程序两者的相同之处在于:都是用来处理在编程过程中多次使用的功能程序的方法,两者均能简化源程序。 两者的区别在于:

(1)宏调用通过宏指令名进行,汇编时,随时调用随时展开,并不简化目标程序:子程序调用是在程序执行期间执行CALL指令,代码只在目标程序中出现一次,所以也简化了目标程序。

(2)宏调用时的参数由汇编程序通过实参转换成形参的方式传递,具有很大的灵活性。宏定义中允许设置若干形式参数代替数值、指令、寄存器、各种字符串等。宏调用时可用程序所需要的实际参数来替换,使编程人员感觉非常灵活;而子程序的参数传递要麻烦得多。 (3)宏调用在汇编时完成,不需要额外的时间开销;子程序调用和子程序返回都需要时间,还涉及堆栈操作。

故若优先考虑速度,用宏指令;若优先考虑存储空间,用子程序。 六、程序分析题: 1.答:(1)L1 (2)L1 (3)L2 (4)L3 (5)L3 2.答:AX=3412H,CX=0078H 3.(1)从一组数中寻找最小数送RESULT单元。 (2)31次。 4.解答:

(1)该程序用来将存放在DATA I和DATA2开始的单元中的两个多字节数据相加,并将结果放在SUM开始的连续单元中。

(2)不可以。因为ADD指令影响进位标志位CF状态。 (3)MOV SI,OFFSET DATA1

(4)清进位,以使在数据最低字节相加时,可以用ADC指令。 5.解答:

SI=510H BX=230H 七、程序设计:

1.参考答案如下: DATA SEGMENT

DAT DW 0A5D2H DAT1 DB ? DAT2 DB ? DAT3 DB ? DAT4 DB ?

DATA ENDS CODE SEGMENT

ASSUME CS:CODE, DS: DATA START:

MOV AX, DATA

MOV DS, AX MOV AX, DAT MOV BX, 0F0FH

AND BX, AX MOV DAT1, BL

MOV DAT3, BH MOV BX, 0F0F0H

AND BX, AX MOV DAT2, BL

MOV DAT4, BH MOV AH, 4CH

INT 21H

CODE ENDS END START

2.参考答案如下:

分析:假设子程序的入口参数成绩表长度放在CX中,SI指向成绩表首单元;出口参数放在S6, S7,S8,S9和S10单元中,并且各单元初值均为0。参考子程序如下: ;子程序名:GRADES

;功能:统计成绩表GRADES中各个分数段的人数

;入口参数:CX中为成绩表长度,SI指向成绩表首单元

;出口参数:各个分数段人数分别放在存储单元S6, S7,S8,S9和S10中 ;所用寄存器:AL, CX,SI

GRADES PROC

PUSH CX ;保护用到的寄存器 PUSH SI PUSH AX

NEXT: CMP CX,O ;判断成绩表是否结束 JZ EXIT DEC CX

MOV AL,[SI] ;将要比较的成绩放在AL中 INC SI

CMP AL,100

JB GRADE9 ;小于100,转向GRADE9 INC[S10] ;S10单元内容增1 JMP NEXT

GRADE9:CMP AL,90

JB GRADE8 ;小于90,转向GRADE8 INC [S9] ;S9单元内容增1

JMP NEXT

GRADE8:CMP AL,80

JB GRADE7 ;小于80,转向GRADE7 INC[S8] ;S8单元内容增1 JMP NEXT

GRADE7:CMP AL,70

JB GRADE6 ;小于70,转向GRADE6 INC [S7] ;S7单元内容增1 JMP NEXT

GRADE6: INC [S6] ;S6单元内容增1 JMP NEXT

EXIT: POP AX POP SI POP CX RET

GRADES ENDP

3.

(1)参考程序如下: DATA SEGMENT

BUF1 DB -10,0,11,55,125,38,-69,… ;N字节数据 CN EQU $-BUF1 BUF2 DB CN DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV BX,OFFSET BUF1 LEA SI,BUF2 MOV CX,CN

LOP1: MOV AL,[BX] MOV [SI],AL INC BX INC SI LOOP LOPl MOV AH,4CH INT 21H CODE ENDS END START

(2)程序的数据定义部分与(1)中相同,不再重复。参考程序段如下: CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX

MOV ES,AX

MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 CLD

MOV CX,CN REP MOVSB MOV AH,4CH INT 21 H CODE ENDS END START

(3)程序的开头和结尾与(2)中相同,不再重复。参考程序段如下: MOV DS,AX MOV ES,AX

MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 CLD

MOV CX,CN LOP: LODSB INC SISTOSB INC DI LOOP LOP

4.参考答案如下: DATA SEGMENT

BUFFER DB OOH, 12H,3BH,43H,60H,OCH DB 8AH,OABH,37H,OFFH,32H,47H

COUNT EQU $-OFFSET BUFFER DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV SI,OFFSET BUFFER MOV CX,COUNT

MOV AL,[SI] ;把第一个数取到AL中 INC SI

DEC CX ;比较COUNT-1次 COMPA: CMP AL,[SI];比较,找出大数 JA NEXT MOV AL,[SI] NEXT: INC SI

LOOP COMPA ;比较完否?

MOV BL,AL ;是,大数在AL中,将其存入BX中 MOV DL,AL MOV CL,4

SHR DL,CL

CMP DL,OAHJB L1 ADD DL,7

Ll: ADD DL,30H MOV AH,02H

INT 21H ;显示高位

MOV DL,BL ;将大数放到DL中 AND DL,OFH ;将高4位屏蔽 CMP DL,OAH JB L2 ADD DL,7

L2: ADD DL,30H MOV AH,02H

INT 21 H ;显示低位 MOV AH,4CH INT 21H CODE ENDS END START

5.参考答案如下: DATA SEGMENT ADRX DW 144 ADRY DW 12 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,ADRX MOV DX,O DIV ADRY CMP DX,O JZ NEXT MOV DL,'1’ JMP EXIT

NEXT: MOV DL,'0' EXIT: MOV AH,02H INT 21H

MOV AH,4CH INT 21H CODE ENDS END START


微机原理与汇编语言复习题及参考答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:八年级物理上册2物态变化单元综合测试(新版)苏科版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: