阅读下列一段程序,分析数据段中BUF, DDBUF, DWBUF各变量的属性,并指出它们各自所在的段首址与偏移地址。程序中的DDBUF EQU THIS DWORD 和DWBUF EQU WORD PRT BUF两条语句有何功能? DATA    SEGMENT   DDBUF   EQU  THIS  DWORD  BUF     DB   100   DUP(?)  DWBUF   EQU  WORD  PRT BUF  DATA    ENDS          ┆  FIRST   EQU  TH

题目

阅读下列一段程序,分析数据段中BUF, DDBUF, DWBUF各变量的属性,并指出它们各自所在的段首址与偏移地址。程序中的DDBUF EQU THIS DWORD 和DWBUF EQU WORD PRT BUF两条语句有何功能? DATA    SEGMENT   DDBUF   EQU  THIS  DWORD  BUF     DB   100   DUP(?)  DWBUF   EQU  WORD  PRT BUF  DATA    ENDS          ┆  FIRST   EQU  THIS  FAR         LEA  SI , BUF          ┆

参考答案和解析
正确答案: 变量BUF为字节类型,它所在的段首址为DATA,偏移地址为0。变量DDBUF为双字节类型,它与BUF具有相同的段属性和偏移地址属性。变量DWBUF为字类型,它与BUF具有相同的段属性和偏移地址属性。
DDBUF EQU THIS DWORD语句表明将紧跟它后面的字类型的变量BUF重新定义为双字类型,并命名为DDWBUF。
DWBUF EQU WORD PRT BUF语句是将BUF重新定义为字类型,并命名为DWBUF。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

下述程序为一数据段,正确的判断是( )。 DATA SEGMENT X DB 332H FIRST = 1 FIRST EQU 2 ENDS

A.以上5条语句为代码段定义,是正确的

B.语句3、4分别为FIRST赋值,是正确的

C.语句2定义变量X是正确的

D.以上没有正确答案


正确答案:D
解析:该程序段为数据段定义,段结束指令ENDS前无段名是错误的:332H超过了字节表示的范围,所以变量x的定义也不正确;语句4中符号FIRST已经定义过,所以也是错误的。

第2题:

执行MOV AX ,WDAT 指令,要使AX寄存器中内存为3412H,不能采用下列哪种数据定义?

A.DSEG SEGMENT WDAT EQU WORD PTR BDAT BDAT DB 12H,34H DSEG ENDS

B.DESG SEGMENT BDAT DB 12H,34H WDAT = WORD PTR BDAT DSEG ENDS

C.DESG SEGMENT WDAT EQU THIS WORD BDAT DB 12H,34H DSEG ENDS

D.DESG SEGMENT BDAT DB 12H,34H WDAT LABEL WORD DESG EBDS


正确答案:D
解析:按照D的数据段定义,WDAT是BDAT数组之后的一个字,所以内容不是 3412H。

第3题:

根据下面的汇编语言源程序,其运行结果是在屏幕上显示 。 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

第4题:

执行MOV AX,WDAT指令时,要使AX寄存器中内容为3412H,不能采用( )数据段定义。

A.DSEG SEGMENT WDAT EQU WORD PTR BDAT BDAT DB 12H,34H DSEG ENDS

B.DSEG SEGMENT BDAT DB 12H,34H WDAT = WORD PTR BDAT DSEG ENDS

C.DSEG SEGMENT WDAT EQU THISWORD BDAT DB 12H,34H DSEG ENDS

D.DSEG SEGMENT BDAT DB 12H,34H WDAT LABEL WORD DSEG ENDS


正确答案:D

第5题:

根据下面的数据段定义可知,变量DAT的偏移地址是( )。 DSEG SEGMENT DAT DW 'AB','CD','EF' CNT EQU $-DAT DSEG ENDS

A.03H

B.04H

C.06H

D.07H


正确答案:C

第6题:

下面程序的功能是利用逻辑尺对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


正确答案:FFH05H或OFFH05H
FFH,05H或OFFH,05H 解析:这段程序的功能是利用逻辑尺来处理BUF为首地址的存储单元中存放的数据,并把结果按照顺序放在RESULT的存储单元中,则RESULT中存放的数据依次应该是FFH, 05H,04H,FFH,FFH,02H,06H。所以前两个字节单元中的数据依次为FFH,05H。

第7题:

数据段中语句如下:BUF1DB3DUP(0,2DUP(1,2),3)COUNTEQU$-BUF1与符号COUNT不等价的值是()

A、6

B、18

C、16

D、.8


参考答案:A,C,D

第8题:

执行MOV AX ,WDAT 指令,要使AX寄存器中内存为3412H,不能采用下列哪种数据定义?

A. DSEG SEGMENT

WDAT EQU WORD PTR BDAT

BDAT DB 12H,34H

DSEG ENDS 

B. DESG SEGMENT

BDAT DB 12H,34H

WDAT = WORD PTR BDAT

DSEG ENDS

C. DESG SEGMENT

WDAT EQU THIS WORD

BDAT DB 12H,34H

DSEG ENDS

D. DESG SEGMENT

BDAT DB 12H,34H

WDAT LABEL WORD

DESG EBDS


正确答案:D

第9题:

根据下面的程序段,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

第10题:

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

A.16H

B.17H

C.11H

D.12H


正确答案:A

更多相关问题