INC AH
SUB AL,10 NEXT:INC BX LOOP LOP
这个就是将3579357935这些数 一个一个加 超过十就计数 然后减十 再往后交
Ah存放的是超过10的次数 但大于10就减十 再往后加 只要大于十就减去10 之后AL中存放的是小于10的次数
上述程序段运行结束后,AH=__5____,AL=_6_____。
13、已知AX=0FF60H,CF=1
MOV DX,96 (DX为60H 有高低位之分 )
XOR DH,0FFH (xor为取反 全为1则为全部取反 高位为FF 低位还是60H) SBB AX,DX SBB 是带进位减 0ff60h -0ff60h -1=0ffffh 产生借位,cf =1
执行上述指令序列后,AX=____0FFFFH _______________,CF=_______1____________。 14、设寄存器AL,BL,CL中内容均为76H, XOR AL,0FH AND BL,0FH OR CL,0FH
执行上述指令序列后,AL=_____79H ______________。 BL=_______06____________,CL=_____7FH ______________。 15、已知AX=0A33AH,DX=0F0F0H AND AH,DL
XOR AL,DH NEG AH NOT AL
执行上述指令序列后,AH=_______60H ____________,AL=______35H _____________。 16、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个字节存储单元内容是什么?
1,0,3,2,5,4,7,6,9,8
17、 .MODE SMALL
.DATA
DATA1 DW 2000H DATA2 DW 3000H
25
.CODE .STARTUP LEA SI,DATA1 MOV DI,OFFSET DATA2 MOV BX,[SI] MOV CX,[DI] MOV [SI],CX MOV [DI],BX .EXIT
END
上述程序段运行后,(DATA1)=__3000H __,(DATA2)=___2000H ____。 18、DA3 EQU WORD PTR DA4 DA4 DB 0ABH,89H ┇
SHR DA3,1 MOV DX,DA3 SHL DA4,1 MOV CX,DA4
上述程序段运行后,CX=___44AAH __,DX=____44D5H __。 (1)SHR DA4 , 1
(DA4)=89ABH/2=44D5H
此时的变化为:DA5 DB D5 , 44 (2)MOV DX , DA4 (DX)=44D5H (3)SHL DA5 , 1
(DA5)=D5H*2=(1)AAH=AAH 此时的变化: DA4 DW 44AAH (4)MOV CX , DA4 (CX)=44AAH 19、现有如下程序段:
DATA SEGMENT
ORG 0020H
DA1 DW 12H,23H DA2 DB 11H,21H DA3 EQU 1234H DA4 EQU $-DA2 DA5 DB 31H,32H DATA ENDS
请回答:(1)该程序段已占有的存储字节数是多少? 是8个字节
(2)符号名DA4的值是多少?符号名DA5的值是多少? 符号名DA4的值为2,符号名DA5的值是0026H。 20、执行下列程序段后,回答问题。 ORG 1221H
26
NUM DW 12H
?
MOV AX,NUM
MOV BX,OFFSET NUM
MOV CL,BYTE PTR NUM+1 MOV CH,TYPE NUM HLT
请问:(AX)=_0012H _____,(BX)=__1221H ____,(CX)=_0200H _____。 21、阅读如下程序:
ADRR DB XXH,XXH,??,XXH
NUM EQU $ -ADRR RETT DB? ?
MOV CX,NUM MOV BX,-1 DON:INC BX
CMP ADRR[BX],0 LOOPZ DON JNZ NEXT
MOV BL,0FFH
NEXT: MOV RETT,BL
HLT
请问:(1)该程序完成的功能是什么?
在以ADRR为起始地址的数组中,查找第一个非0数据
(2)程序执行后指出RETT字节单元中的内容是什么?
若找到则将第一个非0数据在数组中的偏移量送入RETT单元中;若无非0数据,则将0FFH送入RETT单元中。
22、现有一子程序: SUB1 PROC
TEST BL,80H JE PLUS
TEST AL,80H JNE EXITO JMP XCHANGE
PLUS:TEST BL,80H JE EXITO
XCHANGE:XCHG AL,BL EXITO:RET
SUB1 ENDP
试回答:(1)子程序的功能是什么?
子程序的功能是判别AL和BL中的数是否为异号数,当为异号时交换,否
则不变。
(2)若调用子程序前AL=9AH,BL=77H,返回主程序时,AL=__77H ____,
BL=_9AH _____。
27
23、阅读程序段:
BLOCK DB 20H,1FH,08H,81H,0FFH,? RESULT DB ?
?
START:LEA SI,BLOCK
MOV CX,[SI] INC SI
MOV AL,[SI]
LOP1: CMP AL,[SI+1]
JNG NEXT
MOV AL,[SI+1] NEXT:INC SI
LOOP LOP1
MOV RESULT,AL
HLT
请问:(1)该程序完成的功能是什么?
该程序完成的功能是从20H(32)个有符号数中找出最小的数送入RESULT单元中。
(2)该程序循环的次数是多少?
该程序的循环次数是1FH(31)。
24、阅读如下程序段,回答所提出的问题,假定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字存储单元的内容=_ MAX(X1, X2, … XN);
BX=_ 100H + 2×(COUNT-1)__; 程序循环次数=_ COUNT _____
25、对于下面的数据定义,各条MOV的指令单独执行后,有关寄存器的内容是什么? FLDB DB ?
TAB1 DW 20 DUP(?) TAB2 DB ’ABCD’
A. MOV AX,TYPE FLDB AX=1 B. MOV AX,TYPE TAB1 AX=2
C. MOV CX,LENGTH TAB1 CX=20
28