MOV AX,WORD PTR DAT1 MOV CL , DAT1+3 当 程 序 段 执 行 完 后 AX=___3412H____ , CX=__0078H_____ 。 15.DA1 DB 83H,72H,61H,94H,5AH
┇
MOV CX,WORD PTR DA1 AND CX,0FH MOV AL,DA1+3
SHL AL,CL 上述指令序列执行后,AL=__0A0H____,CL=__03H____。 16.现有如下程序段:
DATA SEGMENT DA3 EQU 1234H ORG 0020H DA4 EQU $-DA2
DA1 DW 12H,23H DA5 DB 31H,32H DA2 DB 11H,21H DATA ENDS
请回答:
DA5 的值是多少?
答:(1) 该程序段已占有的存储字节数是 8 个字节。(2) 符号名 DA4 的值为 2,符号名 DA5 的值是 0026H。
17.执行下列程序段后,回答问题。
ORG 1221H MOV BX,OFFSET NUM
NUM DW 12H MOV CL,BYTE PTR NUM+1 … MOV CH,TYPE NUM MOV AX,NUM HLT 请问:
答:(AX)=0012H (BX)=1221H (CX)=0200H 18.执行下列指令后 AX.BX 寄存器的内容? MOV SI,10H MOV AX,1234H MOV [SI+12H],AX LEA BX,[SI]
MOV [SI+14H],BX
答:AX 为 1234H,BX 为 22H LES BX,DWORD PTR [SI+12H]
19.在 NUMW 单元存放有一个 0-65535 范围内的整数, 和 REM 单元,请在空行处各填上一条指令完善该程序。 ┇
MOV AX,NUMW
____ MOV BX,500_________ XOR DX,DX DIV BX
MOV QUI,AX
____ MOV REM,DX _________
20.已知数据段中定义
DAT1 DB 12H,34H,56H,78H
MOV CX,0
MOV AX,WORD PTR DAT1 MOV CL,DAT1+3
当程序段执行完后AX=___3412H _____,CX=___0078H _____。 21.DA1 DB 83H,72H,61H,94H,5AH
┇
MOV CX,WORD PTR DA1 AND CX,0FH MOV AL,DA1+3 SHL AL,CL
上述指令序列执行后,AL=___0A0H ____,CL=___03H ____。 22.DA3 EQU WORD PTR DA4 DA4 DB 0ABH,89H ┇
SHR DA3,1 MOV DX,DA3 SHL DA4,1 MOV CX,DA3
上述程序段运行后,CX=____44AAH _____,DX=_____44D5H _______。 23.阅读下面程序段并填空:
MOV BL,64H MOV CL,03H XOR AX,AX AGAIN:ADD AL,BL
ADC AH,0 DEC CL JNZ AGAIN 问:
(2)AX=___012CH_____。 24.设 AX, 中的数一个为正数, 请将程序中所缺指令语句补上。
TEST AX,8000H
__JE K1 或JZ K1_________ MOV PLW,BX JMP DONE
K1:__MOV PLW,A___________ DONE:
25.下面程序段是判断寄存器 AH 和 AL 中第 3 位是相同,如相同,AH 置 0,否则 AH 置全 1。 试把空白处填上适当指令。 ___ XOR AH,AL____ AND AH,08H ____ JE ZERO_____ MOV AH,OFFH JMP NEXT
ZERO:MOV AH,0 NEXT:……
26.以 BUF 为首址的字节单元中,存放了 COUNT 个无符号数,下面程序段是找出其中最大数 并送入 MAX 单元中。
BUF DB 5,6,7,58H,62,45H,127,…… COUNT EQU $-BUF MAX DB? ┇
MON BX,OFFSET BUF MOV CX,COUNT-1 MOV AL,[BX] LOP1:INC BX
____ CMP AL,[BX]_______ __ JAE NEXT
MOV AL,[BX] NEXT:DEC CX
_____ JNZ LOP1___________ MOV MAX,AL
27.阅读下面程序段并填空:
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 28.下面程序的功能是什么? 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
JNZ LAB
显示输出 BX 寄存器里的内容 29.阅读如下程序:
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) 在以 ADRR 为起始地址的数组中,查找第一个非 0 数据。
(2) 若找到则将第一个非 0 数据在数组中的偏移量送入 RETT 单元中;若无非 0 数据,则将 OFFH 送入 RETT 单元中。 30.现有一子程序:
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
31.阅读程序段:
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) 该程序完成的功能是从 20H(32)个有符号数中找出最小的数送入 RESULT 单元中。
(2) 该程序的循环次数是 1FH(31)
32.阅读如下程序段,回答所提出的问题,假定 X1,X2,XN 为无符号数。
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=______
程序循环次数=______
答: RESULT+2 字存储单元的内容是 MAX(X1, X2, … XN)
BX= 100H + 2×(COUNT-1) 程序循环次数= COUNT
33.下面程序的功能是什么? MOV AX,X CMP AX,Y JGE LAB XCHG AX,Y
LAB:MOV X,AX 答:选择 X,Y 中的较大值存入 X 中
34.某程序欲用单个字符显示的 2 号功能调用去显示 STRING 中的字符串?COMPUTER? 示字符?$?!
STRING DB?COMPUTER?,?$? ┇
MOV BX,0FFSET STRING LOP:MOV DL,[BX] MOV AH,02H INT 21H
_____ INC BX_______________ _____CMP [BX],24H________ JNE LOP
35.下面程序段是判断寄存器 AH 和 AL 中第 3 位是相同,如相同,AH 置 0,否则 AH 置全 1。 试把空白处填上适当指令。
____ XOR AH,AL_______________ AND AH,08H
_____ JE ZERO______________ MOV AH,OFFH JMP NEXT
ZERO:MOV AH,0 NEXT:……
36.在表 TABLE 处存放着 N 个无符号字节数,求表中前 10 个字节数的总和并保存在 AX 寄存 器中。如果总和值超过 AX 寄存器的容量,则置 AX 寄存器内容不变。请在程序中的空格处填 入适当指令使其完整。
LEA BX,TABLE (2)