《汇编语言程序设计》部分试题
一、阅读程序题
1、执行下列程序段后,回答问题:
ORG 1221H MOV BX, OFFSET NUM
NUM DW 12H MOV CL, BYTE PTR NUM+1
…MOV CH, TYPE NUM
MOV AV, NUM HLT
请问:(AX)= , (BX)= , (CX)= 。
2、阅读程序段:
BLOCK DB 20H,1FH, 08H, 81H, OFFH… LOP1: CMP AL,[SI+1]
RESULT DB? JNG NEXT
…MPV AL,[SI+1]
START: LEA SI,BLOCK NEXT: INC SI
MOV CX,[SI] LOOP LOP1
INC SI MOV RESULT, AL
MOV AL, [SI] HLT
请问:(1)该程序完成的功能是什么? (2)该程序循环的次数是多少?
3、设有宏定义如下:
GOTO MACRO L, X, RET, Y
IFB <REL>
JMP L
ELSE
MOV AX, X
CMP AX, Y
J&REL L
ENDIF
ENDM
宏调用:GOTO NEXT, SUM, NL, 15 宏展开为: 。
二、程序设计题
1、编写程序段,求斐波那契数列的第10项A10,A10存放在寄存器CX中,求出后放在寄存器BX中。斐波那契数列的定义如下:
A1=0,A2=1,A3=A2+A1,A4=A3+A2,…
2、编写一个子程序,将字符串中的小写字母转换为大写字母:如口参数为:
BX为字符串的偏移地址;
CX为字符串的长度;
要求子程序返回时BX和CX均不受影响,字符串存放在原区域不变。