运行下面的汇编语言程序:DSEG SEGMENTDAT DB 5,13,4,-2,-6,23,3,1,9,0CNT EQU $—DAT—1NUM DB ?DSEG ENDSSSEG SEGMENT STACKDB 256DUP(0)SSEG ENDSCSEG SEGMENTASSUME DS:DSEG,SS:SSEG,CS:CSEGSTART: MOV AX,DSEGMOV DS,AXMOV SI,OFFSETDATMOV CX,CNTXOR BL,BLLP: MOV AL,[SI]XOR AL,[SI+

题目

运行下面的汇编语言程序:

DSEG SEGMENT

DAT DB 5,13,4,-2,-6,23,3,1,9,0

CNT EQU $—DAT—1

NUM DB ?

DSEG ENDS

SSEG SEGMENT STACK

DB 256DUP(0)

SSEG ENDS

CSEG SEGMENT

ASSUME DS:DSEG,SS:SSEG,CS:CSEG

START: MOV AX,DSEG

MOV DS,AX

MOV SI,OFFSETDAT

MOV CX,CNT

XOR BL,BL

LP: MOV AL,[SI]

XOR AL,[SI+1]

TEST AL,80H

JNE NEXT

INC BL

NEXT: INC SI

LOOP LP

MOV NUM,BL

MOV AH,4CH

INT 21H

CSEG ENDS

END START

在NUM内存单元中得到的结果是______。


相似考题
更多“运行下面的汇编语言程序: DSEG SEGMENT DAT DB 5,13,4,-2,-6,23,3,1,9,0 ”相关问题
  • 第1题:

    下面的8086/8088 汇编语言程序中,主程序通过堆栈将有关信息传送给子程序 STRLEN。在主程序的【 】处填空,使程序能正常运行。

    DSEG SEGMENT

    ARRAY DB 'Computer$',

    NUM DW 0

    DSEG ENDS

    SSEG SEGMENT STACK

    DB 256DUP(0)

    SSEG ENDS

    CSEGl SEGMENT

    ASSUME DS:DSEG,SS:SSEG,CS:CSEGl

    START: MOV AX,DSEG

    MOV DS,AX

    MOV AX,OFFSETARRAY

    PUSH AX

    CALL【 】

    MOV NUM,AX

    MOV AH,4CH

    INT 21H

    CSEG l ENDS

    CSEG2 SEGMENT

    ASSUME DS:DSEG,SS:SSEG,CS:CSEG2

    STRLEN PROC FAR

    PUSH BP

    MOV BP,SP

    PUSH SI

    MOV SI,[BP+6]

    NEXT: CMP BYTE PTR[SI],'$'

    JZ DONE ;串尾吗?

    INC SI

    JMP NEXT

    DONE: MOV AX,SI

    SUB AX,[BP+6]

    POP SI

    POP BP

    RET 2

    STRLEN ENDP

    CSEG2 ENDS

    END START


    正确答案:FAR PTR STRLEN
    FAR PTR STRLEN 解析:该题考查考生对宏汇编指令的掌握。从本程序的功能要求“主程序通过堆栈将有关信息传送给子程序STRLEN",可以看出,需要用CALL指令调用一个子程序,从程序中还可以看出,调用位置和子程序位置位于不同的代码段中,CALL指令的段间直接调用格式为CALL FAR PTR DST,其中DST为子程序的入口地址,所以本题答案应该是FAR PTR STRLEN。

  • 第2题:

    运行下面的汇编语言程序,在NUM内存单元中得到的结果是______。

    DSEG SEGMENT

    DAT DB 5,13,4,-2,-6,23,3,1,9,0

    CNT EQU S-DAT-1

    NUM 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 SI,OFFSET DAT

    MOV CX, CNT

    XOR EL,EL

    LP: MOV AL,[SI]

    XOR AL,[SI+1]

    TEST AL, 80H ; 两个相邻字节的最高位相同吗?

    JNE NEXT

    INC BL

    NEXT: INC SI

    LOOP LP

    MOV NUM, BL

    MOV AH,4CH

    INT 21H

    CSEG ENDS

    END START


    正确答案:7
    7 解析:该程序的功能是判断数据区所有数据的正负连续性,如果两个相邻字节的元素符号不变,则BL加—,最后将结果放在NUM中。

  • 第3题:

    数据段定义如下: DAT1 DB 55H DAT2 DB () 下面指令执行后,DAT2中的内容是()。 MOV AL,DAT1 AND AL,70H OR AL,80H MOV DAT2,AL

    A.E0H

    B.77H

    C.D0H

    D.87H


  • 第4题:

    在下面的汇编语言程序横线处填空,使语句完整,保证程序正确执行。

    DSEG SEGMENT

    D1 DB -1,5,2,6,-7,4

    CNT EQU $-D1

    RS DW

    DSEG ENDS

    SSEG SEGMENT STACK

    DB 256DUP(0)

    SSEG ENDS

    CSEG SEGMENT

    ASSUM CS: CSEG,DS:DSEG, SS:SSEG

    START PROC FAR

    PUSH DS

    XOR AX,AX

    PUSH AX

    MOV AX, DSEG

    MOV DS,AX

    MOV BX,OFFSETF D1

    MOV CX, CNT

    MOV DX, 0

    LP: MOV AL,[BX]

    CMP AL,0

    JGE CONT

    INC DX

    CONT :INC BX

    DEC CX

    JNZ LP

    MOV RS,DX

    RET

    START ______

    CSEG ENDS

    END START


    正确答案:ENDP
    ENDP 解析:该程序的功能是统计大于0的个数。在横线处应该填对应于前面 START PROC FAR语句的结束语句:ENDP。

  • 第5题:

    执行下面的程序段后,DAT1单元的值是( )。 DAT1 DB 12H,34H DAT2 DB 56H,78H MOV AX, WORD PTR DAT1 CMP AX, WORD PTR DAT2 JA DONE MOV BX, WORD PTR DAT2 MOV OWRD PTR DAT2,AX MOV OWRD PTR DAT1, BX DONE: HLT

    A.34H

    B.78H

    C.12H

    D.56H


    正确答案:D