更多“若数据段中有定义 NUM1 EQU 23H NUM2 DW 0”相关问题
  • 第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);

    }


    正确答案:(1)错误:{t=a;b=a;a=t;} 正确:{t=a;a=b;b=t;} (2)错误:return(a); 正确:return(b);
    (1)错误:{t=a;b=a;a=t;} 正确:{t=a;a=b;b=t;} (2)错误:return(a); 正确:return(b); 解析:若求两个数的最大公约数,如果b除a的非零余数能够整除a,那么该余数就是最大公约数;若余数为0,则最大公约数为a。该题程序中采用了循环语句,若b除以a的余数不等于0,则继续用a除以所得余数,直至余数为0,如此可以得到 a,b的最大公约数。关于“交换原则”我们在前面已经讲述过了,这里就不再赘述。

  • 第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


    正确答案:D

  • 第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


    正确答案:C

  • 第5题:

    根据下面的程序段,AL寄存器中的数据是( )。 NUM DW ? NAME DW 10DUP(?) CNT EQU 10 LEN EQU $—NUM MOV AL,LEN

    A.16H

    B.17H

    C.11H

    D.12H


    正确答案:A

  • 第6题:

    根据下面的数据定义: ORG 10H DATl DB 10 DUP(?) DAT2 EQU 12H DAT3 DW 56H,$+10 数据项$+10的值是( )。

    A.0026H

    B.0027H

    C.0032H

    D.0033H


    正确答案:A

  • 第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


    正确答案:B
    解析:Y是BYTE的同义语。

  • 第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条


    正确答案:C

  • 第9题:

    分析下面程序,哪一行代码能正确赋值?()class Demo {public void method() {final int num1 = 10;static int num2 = 20;abstract int num3 = 30;private int num4 = 40;}}

    A.final int num1 = 10;

    B.static int num2 = 20;

    C.abstract int num3 = 30;

    D.private int num4 = 40;


    答案:A
    解析:final可以修饰局部变量


    解析:虽然是运行时期异常,但是也可以使用try…catch语句进行处理。一旦进入处理语句就不会再回去执行

  • 第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的值为多少?表示什么意义?


    正确答案:PAR的偏移地址为0,PLENTH当前偏移地址$=2+16+4=22, $-PAR=22,故PLENTH的值为22。
    若在PLENTH所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH所在行的当前偏移地址。故PLENTH表示从当前行到PAR之间定义的变量所占的字节个数。

  • 第12题:

    某数据段如下: DATA SEGMENT ORG 20H X DB 12H,’AB’ Y DW 789AH DATA ENDS Y单元的偏移地址是()。

    • A、20H
    • B、21H
    • C、22H
    • D、23H

    正确答案:B

  • 第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


    正确答案:C

  • 第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


    正确答案:A

  • 第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条


    正确答案:C

  • 第18题:

    下面的程序段: NUM DW ? NAMEDW 10 DUP (?) CNT EQU 10 LEN EQU $-NUM HOV AX, LEN 执行后,AX中的内容是( )。

    A.16H

    B.17H

    C.11H

    D.12H


    正确答案:A
    解析:LEN EQU $—NUM 其实就是当前行到开始处的相对距离。NUM占2个字节, NAME占10个字节。

  • 第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


    正确答案:D
    解析:LENEQU$—NUM其实就是当前行到开始处的相对距离。NUM占2个字节,NAME占10个字节。

  • 第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)写出所有的独立路径,并设计测试用例


    正确答案:
    V(G)=3独立路径1->2->3->5->71->2>3->5->6->71->2->4->5->71->2->4->5->6->7设计用例

  • 第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


    正确答案:D
    解析:变量DATl是存放字符串的符号地址,其值为0000H(因为是该数据段的第一个变量),而DAT2是按字节存放数值的符号地址,其值为0004H(一个字符占据一个字节的内存)。所以ADDR=0004H。

  • 第22题:

    若在数据段定义:NUM1DW’5D’,则在NUM1单元存放的值为()。

    • A、3544H
    • B、4435H
    • C、00410035H
    • D、00350041H

    正确答案:A

  • 第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


    正确答案: X1=5000H
    X2=5006H
    X3=20H
    X4=6000H
    X5=5002H