v1.0 可编辑可修改 MOV AL,[BX] NEXT:DEC CX
_____ JNZ LOP1___________ MOV MAX,AL
10、编程序段计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址,i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。(要求用循环结构编写,循环控制采用计数控制)。(此题勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。) CX
MOV AX,0
MOV BX,OFFSET BUF MOV CX,20 LOP:ADD AX,[BX] INC BX INC BX LOOP LOP MOV SUM,AX
11、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。 CX 答: BEGIN:MOV AH,1 INT 21H CMP AL,’a’ JB STOP CMP AL,’z’ JA STOP SUB AL,20H MOV DL,AL MOV AH,2 INT 21H JMP BEGIN
2626
v1.0 可编辑可修改 STOP:RET 12、 AND AL,AL JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3 :
上述程序运行后,试回答: CXFX
(1)当(AL)=__0________时,程序转向BRCH1 (2)当(AL)=__1________时,程序转向BRCH2 (3)当(AL)=__-1________时,程序转向BRCH3 13、下面程序的功能是什么 CXFX MOV CH,4 LAB:MOV CL,4 ROL BX,CL MOV DL,BL AND DL,0FH ADD DL,30H CMP DL,3AH JL PRINT ADD DL,7 PRINT:MOV AH,02 INT 21H DEC CH
2727
v1.0 可编辑可修改 JNZ LAB
显示输出BX寄存器里的内容 14、阅读如下程序: CXFX
ADRR DB XXH,XXH,……,XXH CMP ADRR[BX],0 NUM EQU $ -ADRR LOOPZ DON RETT DB JNZ NEXT … MOV BL,OFFH
MOV CX,NUM NEXT:MOV RETT,BL MOV BX,-1 HLT DON:INC BX
请问:(1)该程序完成的功能是什么(2)程序执行后指出RETT字节单元中的内容是什么 答:(1) 在以ADRR为起始地址的数组中,查找第一个非0数据。
(2) 若找到则将第一个非0数据在数组中的偏移量送入RETT单元中;若无非0数据,则将OFFH送入RETT单元中。
15、现有一子程序: CXFX
SUB1 PROC PLUS:TEST BL,80H TEST AL,80H JE EXITO JE PLUS XCHANGE:XCHG AL,BL TEST BL,80H EXITO:RET JNE EXITO SUB1 ENDP JMP XCHANGE 试回答: (1)子程序的功能是什么
(2)若调用子程序前AL=9AH,BL=77H,则返回主程序时,AL=______,BL=______。 答:(1)子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否则不变。 (2) AL=77H, BL=9AH 16、阅读程序段: CXFX
2828
v1.0 可编辑可修改 BLOCK DB 20H,1FH,08H,81H,OFFH… LOP1:CMP AL,[SI+1] RESULT DB JNG NEXT … MOV 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)该程序循环的次数是多少
答:(1) 该程序完成的功能是从20H(32)个有符号数中找出最小的数送入RESULT单元中。 (2) 该程序的循环次数是1FH(31)。
17、阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 CXFX ORG 100H
BLOK DW X1,X2,…,XN COUNT EQU($-BLOLOK)/2 RESULT DW COUNT, LEA BX,BLOK-2 MOV CX,RESULT XOR AX,AX GOON:ADD BX,2 CMP AX,[BX] JAE NEXT MOV AX,[BX] NEXT:LOOP GOON MOV RESULT+2,AX
程序段执行完,回答下述问题 RESULT+2字存储单元的内容=______ BX=______
2929
v1.0 可编辑可修改 程序循环次数=______
答: RESULT+2字存储单元的内容是MAX(X1, X2, … XN) BX= 100H + 2×(COUNT-1) 程序循环次数= COUNT 18、下面程序的功能是什么 CXFX MOV AX,X CMP AX,Y JGE LAB XCHG AX,Y
LAB:MOV X,AX 答:选择X,Y中的较大值存入X中
19、某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试在空白处填上适当的一条指令。 CXTK
STRING DB‘COMPUTER’,‘$’ ┇
MOV BX,0FFSET STRING LOP:MOV DL,[BX] MOV AH,02H INT 21H
_____ INC BX_______________ _____CMP [BX],24H________ JNE LOP
20下面程序段是判断寄存器AH和AL中第3位是相同,如相同,AH置0,否则AH置全1。试把空白处填上适当指令.CXTK
____ XOR AH,AL_______________ AND AH,08H
_____ JE ZERO______________ MOV AH,OFFH
3030