若数据段中有定义 NUM1 EQU 23H NUM2 DW 0 则指令MOVNUM2,NUM1的源、目操作数的寻址方式以及指令执行后NUM2+1单元的内容分别是什么?
第1题:
数据段中有以下定义:
ARRAY1 EQU 16H
ARRAY2 DW 16H
指出下面两条指令的寻址方式:
MOV AX,ARRAY1 ;寻址方式:______。
MOV AX,ARRAY2 ;寻址方式:______。
第2题:
下列给定程序中,函数fun()的功能是;求出两个数的最大公约数,并作为函数值返回。例如,若给num1和num2输入 49和21,则输出的最大公约数为7:若给num1和num2分别输入27和81,则输出最大公约数为27。
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <stdio.h>
int fun(int a, int b)
{ int r,t;
if(a<b)
/******************found*****************/
{ t=a; b=a; a=t;}
r=a%b;
while(r!=0)
{ a=b; b=r; r=a%b;}
/******************found*****************/
return(a);
}
main()
{ int num1, num2, a;
printf("Input num1 num2:"); scanf("%d %d",&num1, &num2);
printf("num1=%d num2=%d\n\n",num1, num2);
a=fun(num1, num2);
printf("The maximun common divisor is %d\n\n", a);
}
第3题:
根据下面的数据段定义,执行MOV BX,ADDR2指令后,(BX)=( )。 DSEG SEGMENT DAT DW 1234H ADDR1 DB 56H ADDR2 EQU DAT+1 DSEG ENDS
A.0001H
B.1234H
C.3456H
D.5612H
第4题:
下面( )不能将字节变量X的属性修改为字节变量Y。
A.X DW 1234H Y EQU BYTE PTR X
B.Y EQU BYTE PTR X X DW 1234H
C.X DW 1234H Y EQU THIS BYTE
D.Y LABEL BYTE X DW 1234H
第5题:
根据下面的程序段,AL寄存器中的数据是( )。 NUM DW ? NAME DW 10DUP(?) CNT EQU 10 LEN EQU $—NUM MOV AL,LEN
A.16H
B.17H
C.11H
D.12H
第6题:
根据下面的数据定义: ORG 10H DATl DB 10 DUP(?) DAT2 EQU 12H DAT3 DW 56H,$+10 数据项$+10的值是( )。
A.0026H
B.0027H
C.0032H
D.0033H
第7题:
下面( )不能使指令MOV AL,Y正确执行?
A.X DW 1234H Y EQU BYTE PTR X
B.Y EQU BYTE X DW 1234H
C.Y EQU THIS BYTE X DW 1234 H
D.Y LABEL BYTE X DW 1234H
第8题:
若定义:DAT DW 1234H 和VALUE EQU 5678H,试问下列指令中有几条指令的源操作数为立即寻址方式? ( )。
①MOV SI,DAT
②MOV SI,VALUE
③MOV SI,VALUE AND OFFOH
④MOV SI,TYPE DAT
A.1条
B.2条
C.3条
D.4条
第9题:
A.final int num1 = 10;
B.static int num2 = 20;
C.abstract int num3 = 30;
D.private int num4 = 40;
第10题:
数据段中有以下定义:ARRAY1 EQU 16HARRAY2 DW 16H请指出下面两条指令中源操作数的寻址方式:MOV AX,ARRAY1;寻址方式:()MOV AX,ARRAY2;寻址方式:()
第11题:
假设程序中的数据定义如下: PAR DW ? PNAME DB 16 DUP(?) COUNT DD ? PLENTH EQU $-PAR 求PLENTH的值为多少?表示什么意义?
第12题:
某数据段如下: DATA SEGMENT ORG 20H X DB 12H,’AB’ Y DW 789AH DATA ENDS Y单元的偏移地址是()。
第13题:
数据段中有以下定义:
ARRAY1 EQU 16H
ARRAY2 DW 16H
指出下面指令的寻址方式:
MOV AX,ARRAY1 ;寻址方式:【 】
第14题:
根据下面的数据段定义可知,变量DAT的偏移地址是( )。 DSEG SEGMENT DAT DW 'AB','CD','EF' CNT EQU $-DAT DSEG ENDS
A.03H
B.04H
C.06H
D.07H
第15题:
根据下面的程序段,AL寄存器中的数据是( )。 NUM DW ? NAME DW 10 DUP(?) CNT EQU 10 LEN EQU $-NUM MOV AL,LEN
A.16H
B.17H
C.11H
D.12H
第16题:
在数据段中有如下定义:
VAR1 EQU 20H
VAR2 DW 16H那么 MOV AX,VAR1 的源操作数的寻址方式是______。
MOV AX,VAR2 的源操作数的寻址方式是______。
第17题:
若定义:DAT DW l234H 和 VALUE EQU 5678H,试问下列指令中有几条指令的源操作数为立即寻址方式? ( )。
①MOVSI,DAT
②MOVSI,VALUE
③MOVSI,VALUEANDOFFOH
④MOVSI,TYPEDAT
A.1条
B.2条
C.3条
D.4条
第18题:
下面的程序段: NUM DW ? NAMEDW 10 DUP (?) CNT EQU 10 LEN EQU $-NUM HOV AX, LEN 执行后,AX中的内容是( )。
A.16H
B.17H
C.11H
D.12H
第19题:
执行下面的程序段后,AX中的内容是( )。 NUM DW? NAME DB 10 DUP(?) CNT EQU 10 LEN EQU $—NUM MOV AX,LEN
A.16H
B.17H
C.11H
D.12H
第20题:
根据源代码,完成以下问题。 一个计算三个数中最大数的程序 main() {int num1,num2,num3,max; printf("Please input three numbers:"); scanf("%d,%d,%d",&num1,&num2,&num3); if (num1>num2) max=num1; else max=num2; if (num3>MAX) max=num3; printf("MAX is:%d \n",max); } (1) 给出对应的流程图 (2) 计算控制流图复杂度V(G) (3)写出所有的独立路径,并设计测试用例
第21题:
根据下面定义的数据段: DSEG SEGMENT DATl DB'1234' DAT2 DW 5678H ADDR EQU DAT2-DAT1 DSEG ENDS 执行指令MOV AX,ADDR后,AX寄存器中的内容是______。
A.5678H
B.7856H
C.4444H
D.0004H
第22题:
若在数据段定义:NUM1DW’5D’,则在NUM1单元存放的值为()。
第23题:
分析程序,写出X1,X2,X3,X4,X5的正确的值。 ORG 5000H X1 DB 03H,04H X2 EQU 20H X3 DW 23H,1AH X4 DB 11H ORG 6000H X5 DW 05H,06H