BLK1 DB 46,84,34,-5,20,122,73 :
MOV CX,7 LEA S1,BLK1 NEXT: MOV AL,[SI] INC SI TEST AL,81H LOOPZ NEXT MOV BL,[SI] :
请回答程序段运行后:(AL)=______(BL)=_______ 17.STRING DB ‘ABCDEFGHIJ'
MOV AH,01 ;从键盘输入字符1~9 INT 21H AND AL,0FH DEC AL XOR AH,AH
MOV BX,OFFSET STRING ADD BX,AX MOV BL,[BX]
MOV AH,02H ;显示输出 INT 21H :
21
试回答:(1)上述程序段的功能是什么?(2)如从键盘输入字符‘4',程序段有什么结果?
18. AND AL,AL JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3 :
上述程序运行后,试回答:
(1)当(AL)=__________时,程序转向BRCH1 (2)当(AL)=__________时,程序转向BRCH2 (3)当(AL)=__________时,程序转向BRCH3 五、程序填空题
1、下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。试把空白处填上适当指令。 _____________________ AND AH,08H
_____________________ MOV AH,OFFH JMP NEXT
ZERO:MOV AH,0 NEXT:……
2、以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。
BUF DB 5,6,7,58H,62,45H,127,…… COUNT EQU $-BUF MAX DB? ┇
MON BX,OFFSET BUF
22
MOV CX,COUNT-1 MOV AL,[BX] LOP1:INC BX
_____________________ JAE NEXT
MOV AL,[BX] NEXT:DEC CX
_____________________ MOV MAX,AL
3.在NUMW单元存放有一个0-65535范围内的整数,将该数除以500,商和余数分别存入QU1和REM单元,请在空行处各填上一条指令完善该程序。 ┇
MOV AX,NUMW _____________ XOR DX,DX DIV BX MOV QUI,AX _____________
4.某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试在空白处填上适当的一条指令。 STRING DB‘COMPUTER’,‘$’ ┇
MOV BX,0FFSET STRING LOP:MOV DL,[BX] MOV AH,02H INT 21H
____________________ ____________________ JNE LOP
23
5.设AX,BX中的数一个为正数,一个为负数,下面程序段完成将 正数送到PLW单元中存放,请将程序中所缺指令语句补上。 TEST AX,8000H ___________ MOV PLW,BX JMP DONE
K1:________ DONE: 6.现有下列数据段: DATA SEGMENT
STR1 DB‘ABCDEFGHIJKL' COUNT EQU -STR1 BUF DB COUNT DUP(0) DATA ENDS
下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区 (即STR1中第一个字符送到BUF的最后一个单元,STR1中最 后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT ________ LOOP:MOVSB
________________ LOOP LOP 六、编制程序
24
1、编定程序段,用DOS的1号功能调用通过键盘输入一字符,并判断输入的字符。如字符是\,则转向YES程序段;如字符是\,则转向NO程序段;如是其他字符,则转向DOS功能调用,重新输入字符。(考生勿需写出源程序格式,只需写出与试题要求有关的指令序列)
(YES和NO分别是两程序段入口处的标号)
2、在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首址的数据区中。
DATA SEGMENT
BUF1 DW-56,24,54,-1,89,-8…… BUF2 DW45,-23,124,345,-265,…… SUM DW10DUP(0) DATA ENDS
3.试编制一程序段,用串操作指令实现以DA_BY为首址的20H个字节单元中存放相同字符‘Y’(设DA_BY存储区已有ES指向)。
4.试编制一源程序,统计DA1字单元中含0的个数,如统计的个数为奇数,则将进位位置1,否则进位位清0。 DATA SEGMENT DA1 DW XXXX DATA ENDS
5.编程序段计算SUM=∑ai=a1+a2+...+a20,已知 a1......a20依次存放在以BUF为首址i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。
(要求用循环结构编写,循环控制采用计数控制)。(此 题考生勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。)
6.设在DAT单元存放一个-9~+9的字节数据,在SQRTAB 数据区中存放了0~9的平方值,请用直接查表法编写一个 子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。并写出主程序的调用方式。 数据段如下:
DATA SEGMENT DAT DB XXH
SQRTAB DB 0,1,4,9,...81
25