定义字符串变量STR1和STR2如下,其中,变量STR1的偏移地址=0。 STR1 DB ‘Hello,Everybody!’ STR2 DB ‘Hello, Everyone!’ 则执行以下程序段后,SI=()H LEA SI,STR1 LEA DI,STR2 MOV CX,16 CLD REPE CMPSB JZ STOP DEC SI MOV BX,SI MOV AL,[SI] STOP:HLT
第1题:
以下程序段的作用是将STR1的后【 】个数据传送到STR2中。
STR1 DB 300 DUP(?)
STR2 DB 100 DUP(?)
MOV CX,100
MOV BX,200
MOV SL,0
MOV DI,0
NEXT:MOV AL,STRl1[BX][SI]
MOV STR2[DI],AL
INC SI
INC DI
LOOP NEXT
第2题:
下面的程序段 DAT DB 1,2,3,4 MOV AL,0 MOV CX,4 MOV SI,3 LP: ADD AL,DAT [SI] DEC SI LOOPE LP HLT 执行结束后,AL和CX寄存器中的内容分别是
A.4和3
B.7和2
C.9和1
D.10和0
第3题:
下面的程序段DAT DB 1, 2, 3, 4 MOV AL, 0 MOV CX, 4 MOV SI, 3LP: ADD AL, DAT [SI] DEC SI LOOPE LP HTL 执行结束后,AL和CX寄存器中的内容分别是
A.4和3
B.7和2
C.9和1
D.10和0
第4题:
执行下列指令后,(CL)=______。 STR1 DW 'AB' STR2 DB 16DUP(?) CNT EQU $-STR1 MOV CX,CNT MOV AX,STR1 HLT
A.10H
B.0EH
C.12H
D.0FH
第5题:
设char str1[11]="HELLO,",str2[10]=“world”;则执行语句 cout<<strlen(strcpy(str1,str2)));后的输出结果是 ______。
A.12
B.11
C.7
D.5
第6题:
判断下列指令是否正确。若不正确,指出错误原因。 (1)MOV SI, DL (2)MOV ES, 1000H (3)LEA AX, 3006H (4)MOV [BP][DI], 0 (5)MOV [SI], [DI] (6)MOV [DI],[BX] (7)MOV [DX+SI],AL (8)MUL AL , 58H (9)MOV DS,SEG DAT (10)MOV WORD PTR [BX],-1
第7题:
已知下列程序: D1 DB 10 DUP(?) D2 DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H ┇ MOV CX,LENGTH D1 MOV SI,SIZE D1—TPYE D1 LP:MOV AL,D2[SI] MOV D1[SI],AL SUB SI,TYPE D1 DEC CX JNZ LP HLT 问: (1)该程序执行后,D1单元开始的10个字节内容是什么? (2)该程序完成的功能是什么?
第8题:
有一段程序如下: MOV CX,100 LEA SI,XSI MOV DI,OFFSET CLD REP MOVSW REP执行是完成什么操作?
第9题:
判断下列指令是否正确。若不正确,指出错误原因。 (1)MOV AX, [EBX] (2)MOV SI, DL (3)MOV EBP, [ESP][EAX*3] (4)LEA AX, 3006H (5)MOV [BP][DI], 0 (6)MOV [SI], [DI] (7)MOV ES, 1000H (8)MOV AX, X+2 (9)MOV AX, CX+2 (10)MOV [EAX][EAX*2], AL
第10题:
有变量定义语句“Dim Str1,Str2 As String *10”,其中Str1变量的类型应为(),其中Str2变量的类型应为()。
第11题:
有一段程序如下: MOV CX,100 LEA SI,XSI MOV DI,OFFSET CLD REP MOVSW 该程序段完成了什么功能?
第12题:
第13题:
交换寄存器SI、DI的内容,正确的程序段是( )。
A.PUSH SI
B.PUSH SI PUSH DI PUSH DI POP SI POP DI POP DI POP SI
C.MOV AX,SI
D.MOV AX,SI MOV SI,AX MOV BX,DI MOV DI,BX XCHG BX,AX
第14题:
阅读下列程序,写出程序的运行结果【 】。
include<iostream. h>
void main() { char str1[ ]: "Hello, World?;
char str2[100];
int i=0;
do{
if (str1[i]>= 'a'&& str1[i]<= 'z' )
str2[i]=str1[i]-32;
else
str2[i]=strl [i];
i++;
}while(strl[i]!='\0');
str2[i]='\0';
cout<<str1<<end1;
cout<<str2<<end1;
}
第15题:
执行下列指令后: STR1 DW ‘AB’ STR2 DB 16 DUP(?) CNT EQU $ -STR1 MOV CX,CNT (CL)= ( )
A.10H
B.12H
C.OEH
D.0FH
第16题:
交换寄存器SI,DI的内容,正确的程序段是( )
A.PUSH SI PUSH DI POP SI POP DI
B.PUSH SI PUSH DI, POP SI,DI
C.MOV AX,SI MOV SI,DI MOV DI,AX
D.MOVAX,SI MOV BX,DI XCHG BX,AX
第17题:
执行下面的程序段 MOV SP,2000H MOV Ax,OFOH MOV SI,1234H MOV DX,5678H PUSH SI POP DI SHL DX,1 TEST AX,DX PUSH DX HLT 之后,DH内容所在程序段的偏移地址是( )
A.1FFFH
B.1FFEH
C.1FFDH
D.1FFCH
第18题:
有一段程序如下: MOV CX,100 LEA SI,XSI MOV DI,OFFSET CLD REP MOVSW REP和MOVSW那条指令先执行?
第19题:
源程序如下: MOV CX,9 MOV AL,01H MOV SI,1000H NEXT:MOV[SI],AL INC SI SHL AL,1 LOOP NEXT 执行本程序后AL等于多少?SI等于多少?CX等于多少?
第20题:
阅读下面的程序,回答问题 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 如果将代码段中的指令LEA DI,BCD+N-1改成LEA DI,BCD;DEC DI改成INC DI,其它指令不变,程序执行后,从BCD开始的N个字节单元中的内容是什么?
第21题:
一般程序如下: ORG 2000H ARY DW --4,3,--2,1 CNT DW $--ARY VAR DW ARY,$+4 ┆ MOV AX,ARY MOV BX,OFFSET VAR MOV CX,CNT MOV DX,VAR+2 LEA SI,ARY ┆ 此程序段执行后,寄存器AX,BX,CX,DX与SI中的内容各是多少?
第22题:
程序段如下: BLK1 DB 46,84,34,-5,20,122,73 : MOV CX,7 LEA S1,BLK1 NEXT:MOV AL,[SI] INC SI TEST AL,81H LOOPZ NEXT MOV BL,[SI] : 请回答程序段运行后: (AL)=? (BL)=?
第23题:
第24题: