微型计算机系统与接口

阅读下列一段程序,分析数据段中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  T

题目

阅读下列一段程序,分析数据段中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

更多相关问题