大学微机原理的几道简单题目,求解答

DATA SEGMENT
BUF DB 01H,02H,05H
COUNT EQU $-BUF
A DB ‘AB’
B DB 2 DUP (0)
C DW 8506H,33
DATA ENDS
(1)COUNT的值是多少?
-------------------------------------分割线

根据下列数据的定义,写出各条指令执行的结果

TAB DW 10 DUP(?)
ARRY DB ‘ABC’
BUF DB ?
(1) MOV AX,TYPE BUF AX=( )
(2) MOV BX,TYPE TAB BX=( )
(3) MOV CX,LENGTH TAB CX=( )
(4) MOV SI,SIZE TAB SI=( )
-----------------------------------------------

BUF DB ‘AB’
LEA BX,BUF
MOV AX,[BX]
ADD AX, 6230H

执行完程序后,则
(1)寄存器(AX)= H
注: A、B的ASCII码为41H,42H
(这题不是应该是以BX的内容为地址,然后把这地址里的内容给AX嘛?地址应该是4241H,可是4241H里的内容没说是多少啊,怎么算?是我的理解错了吗?)

-----------------------------------------------------------

对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?

NUM DB ?
TAB-A DW 5 DUP(?)
TAB-B DB ‘NEXT’
(1) MOV AX,TYPE NUM AX=( 01H )
(2) MOV AX,TYPE TAB-A AX=( 02H )
(3) MOV CX,LENGTH TAB-A CX=( 05H )
(4) MOV DX,SIZE TAB-A DX=( 0AH )
(5) MOV CX,LENGTH TAB-B CX=( 04H )
(6) MOV DX,SIZE TAB-B DX=( 04H )

(?不是代表不确定值吗,为什么是01H 02H这些?)

某个8位机器数35H作为BCD码表示的真值是?怎么算啊?

第1个回答  推荐于2017-09-11
(1) count=3,因为$是“当前段的计数”
(2)TAB DW 10 DUP(?)
ARRY DB ‘ABC’
BUF DB ?
(1) MOV AX,TYPE BUF AX=( 1 )
(2) MOV BX,TYPE TAB BX=( 2 )
(3) MOV CX,LENGTH TAB CX=( 10 )
(4) MOV SI,SIZE TAB SI=( 20 )
-----------------------------------------------

BUF DB ‘AB’
LEA BX,BUF
MOV AX,[BX]
ADD AX, 6230H

执行完程序后,则
(1)寄存器(AX)= a471 H (AL='A' 字是低字节在前,高字节在后 )

另 LEA BX,buf 取的是BUF的偏移地址,并不是你理解的用BUF中的数做地址。
-----------------------------------------------------------

对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?

NUM DB ?
TAB-A DW 5 DUP(?)
TAB-B DB ‘NEXT’
(1) MOV AX,TYPE NUM AX=( 01H )
(2) MOV AX,TYPE TAB-A AX=( 02H )
(3) MOV CX,LENGTH TAB-A CX=( 05H )
(4) MOV DX,SIZE TAB-A DX=( 0AH )
(5) MOV CX,LENGTH TAB-B CX=( 04H )
(6) MOV DX,SIZE TAB-B DX=( 04H )

因为,取的是数据类型、存贮单元大小,而不是取该单的存贮内容!!!

希望能帮到你追问

$表示当前段的计数是说当前段内有几个单元格吗?$-BUF是什么意思?减去BUF的什么? 还有某个8位机器数35H作为BCD码表示的真值是?

追答

(1)是在当前段中前面有多少个"字节",如,前面有DW,那么一个单元就有2个字节,类推。
(2)一BUF,是从BUF起到当前之间的字节数
(3)BCD真值就是它表示的了什么样的十进制数,很明显示,35H的真值就是35。

本回答被提问者和网友采纳
第2个回答  2012-12-18
352 325 253
第3个回答  2012-12-18
其实我也不会,求大神指点。。。。