微机原理 求解释!!!!!!!!
程序中数据段定义的数据如下:DATASEGMENTNAMESDB'GOODMORNING!'DW2050H,78H,3080HDATAENDS请指出下列指令序列执行后累加...
程序中数据段定义的数据如下:
DATA SEGMENT
NAMES DB 'GOOD MORNING!'
DW 2050H,78H,3080H
DATA ENDS
请指出下列指令序列执行后累加器中的结果是多少?
(1) MOV BX, OFFSET NAMES
MOV AL, [BX+03H]
(2) MOV BX, 12
MOV SI, 3
MOV AX, NAMES[BX+SI]
(3) MOV BX, 12
MOV SI, 3
LEA AX, NAMES[BX+SI] 展开
DATA SEGMENT
NAMES DB 'GOOD MORNING!'
DW 2050H,78H,3080H
DATA ENDS
请指出下列指令序列执行后累加器中的结果是多少?
(1) MOV BX, OFFSET NAMES
MOV AL, [BX+03H]
(2) MOV BX, 12
MOV SI, 3
MOV AX, NAMES[BX+SI]
(3) MOV BX, 12
MOV SI, 3
LEA AX, NAMES[BX+SI] 展开
展开全部
(1)AL=44H,是字符D的ASCII码,也就是NAMES中第四个字符;
(2) MOV AX, NAMES[BX+SI],这条指令有问题,因为NAMES是用DB定义的,是字节类型的数据,应该把AX改为AL,即 MOV AL, NAMES[BX+SI],此时,AL=78H;
(3)LEA AX, NAMES[BX+SI],这条指令送的是偏移地址,也就是AX=15=000FH。
(2) MOV AX, NAMES[BX+SI],这条指令有问题,因为NAMES是用DB定义的,是字节类型的数据,应该把AX改为AL,即 MOV AL, NAMES[BX+SI],此时,AL=78H;
(3)LEA AX, NAMES[BX+SI],这条指令送的是偏移地址,也就是AX=15=000FH。
追问
你说第二问有问题但“DW 2050H,78H,3080H”这条语句定义的是DW啊!第二问是不是AX=5078H,求解释!谢谢您了
追答
也可以像你那样理解,那就应该是0078H,因为NAMES[12+3]其实指向78H(但它定义为字,所以存储时是0078H,另外Good moring中间应该是有个空格吧,它也要占一个字节存放),这样的话, MOV AX, NAMES[BX+SI],这条指令是把NAMES[13]和NAMES[14]两个单元的内容组成一个字送给AX,低地址放低位,高地址放高位,组合起来就是0078H。
北京四方瑞和科技
2022-11-09 广告
2022-11-09 广告
电气火灾监控系统可以找北京四方瑞和科技有限公司,四方瑞和是一家聚焦智慧用电领域的创新型科技企业,基于母公司四方股份在电力行业的深厚技术与经验积淀,拥有基于AI与物联网的系列自主产品, 同时建设了以在线运营中心为依托的专业服务体系,目前已在多...
点击进入详情页
本回答由北京四方瑞和科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询