比较双精度数2p与q如果2pq
3.29
(1) LEA SI, CONAME
LEA DI, PRLINE
MOV CX, 20
CLD
REP MOVSB (2) LEA SI, CONAME+19
LEA DI, PRLINE+19
MOV CX,20
STD
REP MOVSB (3) LEA SI, CONAME+2
LODSW
(4) LEA DI, PRLINE+5
STOSW
(5) LEA DI, CONAME
MOV AL, 20H
MOV CX, 20
CLD
REPNE SCASB
JNZ NEXT
DEC DI
MOV BH, ES:[DI]
NEXT:
3.30
LEA DI, STRING
MOV AL, ‘&’
MOV CX,19
CLD
REPNE SCASB
JNZ NEXT
DEC DI
MOV ES:[DI], 20H
NEXT:
3.31
(1) LEA DI, PRINT_LINE
MOV AL, 20H
MOV CX, 132
CLD
REP STOSB (2) LEA DI, STUDENT_ADDR
MOV AL, ‘_’
MOV CX, 9
CLD
REPNE SCASB (3) LEA DI, STUDENT_ADDR+8
MOV AL, ‘_’
MOV CX, 9
STD
REPNE SCASB (4) LEA DI, STUDENT_NAME
MOV AL, 20H
MOV CX, 30
CLD
REPE SCASB
JNZ NEXT
LEA DI, STUDENT_NAME
MOV AL, ‘*’
MOV CX, 30
CLD
REP STOSB
NEXT:
(5) LEA SI, STUENT_NAME
LEA DI, PRINT_LINE
MOV CX, 30
CLD
REP MOVSB
LEA SI, STUDENT_ADDR+8
LEA DI, PRINT_LINE+131
MOV CX, 9
STD
REP MOVSB 3.32
LEA SI, OLDS
LEA DI, NEWS
MOV CX, 5
CLD
REPE CMPSB
JNZ NEW_LESS
….
NEW_LESS:
3.33
(1) CMP DX, CX
JA EXCEED (2) CMP BX, AX
JG EXCEED
(3) CMP CX, 0
JZ ZERO
(4) CMP BX, AX
JO OVERFLOW (5) CMP BX, AX
JLE EQ_SMA
(6) CMP DX, CX
JBE EQ_SMA
3.34
(1) L1
(2) L1
(3) L2
(4) L3
(5) L5
3.35
(1) JNB, JBE, JNL, JLE (2) JNB, JBE, JNL, JLE (3) JNB, JNBE, JL, JLE (4) JNB, JNBE, JNL, JNLE (5) JNB, JNBE, JNL, JNLE (6) JB, JBE, JL, JLE
(7) JB, JBE, JL, JLE
(8) JNB, JNBE, JL, JLE 3.36
比较双精度数2p与q。如果2p,q, 则AX置为1;如果2p?q, 则AX置为2。
3.37
Y 三位为1, ROUTINE_1
N
Y 两位为1, ROUTINE_2
N
Y 一位为1, ROUTINE_3
N
ROUTINE_4
MOV AL, STATUS
NOT AL
TEST AL, 0010 1010B
JZ ROUTINE_1
TEST AL, 0000 1010B
JZ ROUTINE_2
TEST AL, 0010 0010B
JZ ROUTINE_2
TEST AL, 0010 1000B
JZ ROUTINE_2
TEST AL, 0000 0010B
JZ ROUTINE_3
TEST AL, 0000 1000B
JZ ROUTINE_3
TEST AL, 0010 0000B
JZ ROUTINE_3
ROUTINE_4:
….
ROUTINE_1:
…
ROUTINE_2:
…
ROUTINE_3:
…
3.38
(1) (AX)=05H, (BX)=10H, (CX)=00H, (DX)=00H (2) (AX)=02H, (BX)=04H, (CX)=03H, (DX)=01H (3) (AX)=03H, (BX)=07H, (CX)=02H, (DX)=00H 3.39
(1)
SP SP
0100H 00FEH
0400H
MAIN 调用SUBA前 MAIN 调用SUBA后
(2) (3)
SP SP
00FCH 00F8H
0100H
B200H
0A00H 0A00H
0400H 0400H
SUBA调用SUBB后 SUBB调用SUBC后
(4) (5)
SP SP
00FCH 00FAH
0100H 0100H
B200H 0C00H
0A00H 0A00H
0400H 0400H
从SUBC返回SUBB后 SUBB调用SUBD后
(6) (7)
SP SP
00FCH 00FEH
0100H 0100H
0C00H 0C00H
0A00H 0A00H
0400H 0400H
从SUBD返回SUBB后 从SUBB返回SUBA后
(8) (9)
SP SP
0100H 00FCH
0100H 0100H
0C00H 0C00H
0A00H 0600H
0400H 1000H
从SUBA返回MAIN后 MAIN调用SUBC后
3.41
(1) 在DS段中从偏移地址为2000H的单元开始的4个字节单元依次存储的内容为56H,0F4H,23H 和98H。
(2) 在DS段中从偏移地址为348CH的单元开始的4个字节单元依次存储的内容为91H,34H,0F2H 和01H。
(3) (EBX)=4CA26D92H
3.42
(1) AX寄存器的内容进栈。
(2) 将一个双字出栈,并送ESI寄存器。
(3) 将数据段中(BX)所指向的字单元内容进栈。 (4) 所有寄存器进栈。
(5) 将一个字出栈,并送DS寄存器。
(6) 将立即数4进栈。
3.43
(1) (EAX)=2CEFF93H (2) (EBX)=3EB00000H (3) (EAX)=09090804H (4) (EDX)=006F13ADH
3.44
(1) (EBX)=0FFFF FFF4H (2) (EDX)=0FFFF FFF8H (3) (ECX)=0000 0007H (4) (EBX)=0000 0099H 3.45
(EAX)=0000 0000H ; (EBX)=0000 0019H
3.46
(AX)=0003H ; (DX)=0007H
3.47
ADD ECX, EDX
ADC ECX, ESI
MOV EDI, ECX
3.48
(BX) ? (DX) * 100H
3.49
MOV AL, BL
CBW
IDIV CL
MOV DL, 2
IMUL DL
MOV DX, AX
3.50
JMP DI
则执行该指令后,(IP)=(DI)。
JMP [DI]
则执行该指令后,(IP)=(16d×(DS),(DI))。
3.51
MOV CX, 100H
MOV AL, 0
MOV BL, 0
MOV SI, 0
LOOP1: CMP ARRAY[SI], 42H
JA NEXT1
JB NEXT2
JZ NEXT3
NEXT1: INC AL
JMP SHORT NEXT3
NEXT2: INC BL
NEXT3: INC SI
LOOP LOOP1
MOV UP, AL
MOV DOWN, BL