MOV CX,16 XOR BL,BL AGAIN: MOV AL,[SI] HL AL,1 JC NEXT INC BL NEXT:INC SI LOOP AGAIN TEST BL,01H JNE L1 CLC JMP DONE L1: STC
DONE: MOV AH,4CH INT 21H CODE ENDS
END START
24、编定程序段,用DOS的1号功能调用通过键盘输入一字符,并判断输入的字符。如字符是\,则转向YES程序段;如字符是\,则转向NO程序段;如是其他字符,则转向DOS功能调用,重新输入字符。(考生勿需写出源程序格式,只需写出与试题要求有关的指令序列) (YES和NO分别是两程序段入口处的标号) BC
答案:
KEY:MOV AH,1 INT 21H
CMP AL,‘Y’ JE YES
CMP AL,‘N’
JE NO JMP KEY
25、在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求
它们对应项之差,并将差数存入以SUM为首址的数据区中。
DATA SEGMENT
BUF1 DW -56,24,54,-1,89,-8,45,-23,43,76
BUF2 DW 45,-23,124,345,-265,65,-23,87,-34,65 SUM DW 10 DUP(0) DATA ENDS
答案:
DATA SEGMENT
BUF1 DW -56,24,54,-1,89,-8,45,-23,43,76
BUF2 DW 45,-23,124,345,-265,65,-23,87,-34,65 SUM DW 10 DUP(0) DATA ENDS
STACK1 SEGMENT PARA STACK
21
DW 20H DUP(0)
STACK1 ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1 START:MOV AX,DATA
MOV DS,AX MOV CX,10 LEA SI,BUF1 LEA DI,BUF2 LEA BX,SUM
LOP1: MOV AX,[SI]
SUB AX,[DI] MOV [BX],AX ADD SI,2 ADD DI,2 ADD BX,2 LOOP LOP1 MOV AH,4CH INT 21H CODE ENDS END START
26、
LEA SI,STR MOV AL,ODH XOR CX,CX
GOON:CMP AL,[SI] JZ NEXT INC CX INC SI JMP GOON
NEXT:MOV COUNT,CX
字节变量STR中存放着一个字符串‘abcdefGHIJK’,以0DH为结束标志,上述指令序列完成的功能是 求字符串长度 ,执行以上指令后字变量COUNT= 11 。 CXFX 27、下列程序片段用来分别统计ARRAY数组中奇数和偶数的个数。请在空白处填写合适的指令。 CXTK
DATA SEGMENT
ARRAY DW 23ABH,1570H,567,1765H,46,5210H COUNT EQU ($-ARRAY)/2 DA1 DB ? DA2 DB ? DATA ENDS
??
LEA SI,ARRAY MOV CX,COUNT
22
LOP1:MOV AX,[SI]
TEST AX,0001H JZ LOP2 INC BL JMP LOP3
LOP2:INC BH
LOP3: ADD SI,2 DEC CX JNZ LOP1 MOV DA1,BL MOV DA2,BH
-1 x<0 28、编写计算下面函数值的程序 y= 0 x=0 1 x>0 其中,输入数据x和输出数据y均在数据段中定义,且皆为字节变量。 BC DATA SEGMENT
X DB 45H Y DB ?
DATA ENDS ;
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA
MOV DS,AX MOV AL,XXX MOV AH,0 CMP AL,0
JGE NEXT1 MOV BL,-1
JMP OVER NEXT1:CMP AL,0
JE NEXT2 MOV BL,1
JMP OVER NEXT2:MOV BL,0 OVER: MOV ZZZ,BL
MOV AH,4CH INT 21H CODE ENDS
END START
29、写一个把字符串中的大写字母改写为小写字母的子程序(近过程)。设字符串以0为结束标志。 BC
;子程序名:STRLWR ;功 能:把字符串中的所有大写字母改写为小写字母 ;入口参数:DS∶BX=存放改写所需字符串的缓冲区首地址 ;出口参数:无
23
STRLWR PROC PUSH AX
PUSH SI MOV SI,BX AGAIN: MOV AL,[SI] OR AL,AL
JZ OK CMP AL,’A’ JB NEXT CMP AL,’Z’ JA NEXT
OR AL,20H(或者ADD AL,30H) MOV [SI],AL NEXT: INC SI JMP AGAIN OK: POP SI
POP AX RET STRLWR ENDP
第6章:循环程序设计
1、循环控制指令LoopNZ/LoopNE控制循环继续执行的条件是(CX≠0且ZF=0) DX
2、循环指令LOOPNZ终止循环的条件是( CX=0,或ZF=1 )。 DX
3、检查BUF的内容是否为正偶数,如是正偶数,则0TAL。下面程序段正确的是( CDX
A、MOV AL,BUF B、MOV AL,BUF JS K1
AND AL,11 SHR AL,1 JNZ K2 JNC K1 MOV AL,0 MOV AL,0 K2:??
K1:??
24
)。
C、MOV AL,BUF TEST AL,81H JNZ K3 MOV AL,0 K3:??
4、下列描述中,执行循环的次数最多的情况是 ( A )。 DX
D、MOV AL,BUF JNP K4 TEST AL,80H JNZ K4 MOV AL,0 K4:…… A.MOV CX,0 B.MOV CX,1
LOP:LOOP LOP LOP:LOOP LOP C.MOV CX,0FFFFH D.MOV CX,256 LOP:LOOP LOP LOP:LOOP LOP
5、
DATA SEGMENT
S9 DB0,1,2,3,4,5,6,7,8,9 DATA ENDS ┇
LEA SI,S9 LEA,DI,S9+1 MOV CX,5
LOP: MOV AL,[SI] XCHG AL,[DI] MOV [SI],AL ADD SI,2 ADD DI,2
LOOP LOP
上述程序段运行后,S9开始的10个字节存储单元内容是什么? CXFX S9 DB 1,0,3,2,5,4,7,6,9,8
6、实现将DX:AX中存放的32位数扩大四倍,正确的程序段是(③ )。 DX ① SHL AX,2 ROL DX,2 ② RCL AX,2 SHL DX,2 ③ MOV CX,2 LOP:SHL AX,1 RCL DX,1 LOOP LOP ④ SHL AX,1 SHL AX,1 RCL DX,1 RCL DX,1
7、在下列指令中, D 指令的执行会影响条件码中的CF位。 DX A.JMP NEXT B.JC NEXT C.INC BX D.SHL AX,1 8、下列指令执行时出错的是(A)。 DX
25
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库汇编语言期末复习题大全(5)在线全文阅读。
相关推荐: