阅读下面的程序,回答问题 DATA SEGMENT BUF DB '1234' N=$-BUF BCD DB N DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,BUF MOV CX,N LEA DI,BCD+N-1 LOOP1:MOV AL,[SI] SUB AL,30H MOV [DI],AL INC SI DEC DI DEC CX JNE LOOP1 MOV AH,4CH INT 21H CODE ENDS END START 找出一条指令代替指令“SUB AL,30H”,使程序功能不变。
第1题:
下面程序的功能是利用逻辑尺对BUF变量中的数据进行变换,执行该程序后,以RESULT为首地址的前两个字节单元中的数据依次为【 】。
DSEG SEGMENT
BUF DB 1,5,4,0,7,9,2,6
L EQU 00111001B ;用做逻辑尺
RESULT DB 10 DUP(?)
DSEG ENDS
SSEG SEGMENT STACK
DB 256 DUP(0)
SSEG ENDS
CSEG SEGMENT
ASSUME DS:DSEG,SS:SSEG,CS:CSEG
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV SI,0
MOV CX,8
MOV DL,L
GOON: SHR DL,1
JC FILL
MOV AL,BUF[SI]
JMP NEXT
FILL: MOV AL,OFFH
NEXT: MOV RESULT[SI],AL
INC SI
LOOP GOON
RET
START ENDP
CSEG ENDS
END START
第2题:
A.MOV [DI], [SI]
B.MOV DS, SS
C.MOV AL, [EAX+EBX*2]
D.OUT BX, AX
第3题:
下面的汇编语言源程序经汇编后,发现TEST [BX], 01H指令有语法错误,试问该指令的正确形式应该是 。 DSEG SEGMENT DAT DB 5,13,4,-2,6,23,44,-1,29,-3 CNT DW $-DAT DSEG ENDS SSEG SEGMENT STACK DB 256 DUP(0) SSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,SS:SSEG,CS:CSEG START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DSEG MOV DS,AX XOR AX,AX MOV BX,OFFSET DAT MOV CX,CNT LP: TEST [BX],01H JZ NEXT INC AH ADD AL,[BX] NEXT: INC BX LOOP LP SET START ENDP CSEG ENDS END START
TEST BYTE PTR [BX],01H 或 TEST DAT[BX],01H
第4题:
执行下列程序后,(CX)=( )。 DATA SEGMENT A DW 1, 2, 3, 4, 5 B DW 5 DATA SEGMENT CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX, DATA MOV DS, AX LEA BX, A ADD BX, B MOV CX, [BX] MOV AH, 4CH INT 21H CODE ENDS END START
A.400
B.0
C.10
D.100
第5题:
执行下面的程序后,AX寄存器中的数据是( )。 BUT DW 10DUP(2) XOR AX, AX MOV CX, LENGTH MOV SI,SIZE BUF—TYPEBUF NEXT: ADD AX,BUF [SI] SUB SI,TYPE BUF LOOP
A.20
B.30
C.32
D.40
第6题:
完成下面的程序段,使程序显示中的字符串。
DATA SEGMENT
BUE DB ‘HOW DO YOU DO?’,ODH,OAH,’$‘
┆
DATA ENDS
CODE SEGMENT
┆
MOV AX,DATA
MOV DS,AX
┆
MOV DX【 】
MOV AH, 9
INT 21H
┆
CODE ENDS
第7题:
阅读下述程序,指出宏指令ABC的功能是______。
1 ABC MACRO X1,X2,X3
2 LOCAL CONT
3 PUSH AX
4 MOV AX, X1
5 SUB AX, X2
6 CMP AX, 0
7 JGE CONT
8 NEG AX
9 CONT: MOV X3, AX
10 POP AX
11 ENDM
12 DATA SEGMENT
13 X DW 32
14 Y DW 98
15 Z DW ?
16 DATA ENDS
17 CODE SEGMENT
18 ASSUME CS:CODE,DS:DTAT
19 BEGIN: MOV AX, DATA
20 MOV DS,AX
21 ABC X,Y,Z
22 MOV AH, 4CH
23 INT 21H
24 CODE ENDS
25 END BEGIN
第8题:
根据下面的汇编语言源程序,其运行结果是在屏幕上显示 。 DSEG SEGMENT DAT DB 0FFH N EQU 3 BUF DB 3 DUP(‘?’) DB ‘$’ DSEG ENDS SSEG SEGMENT STACK DB 256 DUP(0) SSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,SS:SSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV BX,OFFSET BUF MOV SI,N MOV AL,DAT MOV AH,0 MOV CX,10 NEXT: XOR DX,DX DIV CX ADD DL,30H ;形成ASCII码 DEC SI MOV [BX+SI],DL OR SI,SI JNE NEXT LEA DX,BUF MOV AH,9 INT 21H MOV AH,4CH INT 21H CSEG ENDS END START
255
第9题:
下面的程序用来从键盘重复接收一字符送BUFF开始的单元,直到接收到行结束
标志ODH。在程序中填空,保证其正确运行。
1 DATA SEGMENT
2 BUFF DW 128 DUP(0)
3 DATA ENDS
4 CODE SGEMENT
5 ASSUME CS:CODE,DS:DATA
6 BEGIN: MOV AX, DATA
7 MOV DS, AX
8 LEA SI, BUFF
9 GCH: MOV AH, 01H
10 INT 21H
11 MOV [SI], AL
12 INC SI
13 __________
14 JNE GCH
15 MOV AH, 4CH
16 INT 21H
17 CODE ENDS
18 END BEGIN
第10题:
DSEG SEGMENT
BUF DB 1,5,4,0,7,9,2,6
L EQU O0111001B 用作逻辑尺
RESULT DB 10 DUP(?)
DSEG ENDS
SSEG SEGMENT STACK
DB 256 DUP(0)
SSEG ENDS
CSEG SEGMENT
ASSUME DS:DSEG; SS:SSECG, CS:CSEG
START PROC FAR
PUSH DS
XOR AX, AX
PUSH AX
MOV AX, DSEG
MOV DS, AX
MOV SI, 0
MOV CX, 8
MOV DL, L
GOON: SHR DL, 1
JC FILL
MOV AL, BUF[SI]
JMP NEXT
FILL: MOV AL, OFFH
NEXT: MOV RESULT[SI], AL
INC SI
LOOP GOON
RET
START ENDP
CSEG ENDS
END START
在保持以上程序功能不变的前提下,INCSI指令可以用【 】指令替换。