中易网

江苏三级汇编语言,程序执行后寄存器AL与BX的值,求详细过程

答案:2  悬赏:0  
解决时间 2021-02-02 08:31
BUF DB 1,2,3,4
DAT DW 5,6,7,8
CNT EQU MYM - BUF
MOV SI,4
MOV AL,BUF[SI]
MOV BX,CNT

CNT EQU MYM - BUF 这还能减? MYM是啥?
最佳答案
BUF DB 1,2,3,4
DAT DW 5,6,7,8
CNT EQU MYM - BUF ;这里少了MYM的定义,如果不是你漏写了,就是题目写错了。
;一般写作CNT EQU $-BUF,CNT是变量名,$是当前地址,BUF是
;变量BUF的首地址,$-BUF则是BUF到当前地址的长度,通常用于获取
;BUF(字符串)的长度

MOV SI,4 ;
MOV AL,BUF[SI] ;BUF[4],即dat的第一个元素5,而dat是dw类型,双字节,其值
;0005,而x86体系是litte endian,即数字的低位存储在低地址,
;所以DAT在内存中顺序存储是 05 00 06 00 07 00 08 00,所以
;BUF[4],即Dat的第1个字节是05,执行完毕后,al是05

MOV BX,CNT ;CNT,如果把MYM改成$,则是BUF到CNT的长度,即12字节,BX
;为000C
全部回答
首先确定数据段中各数据的存放顺序如下: da1: 34h 12h da2: 56h 78h 执行mov di, offset da1后,di指向字节数据34h di+2指向56h,两数相加结果为34h+56h=8ah 注意:字数据存储在内存中时,低字节存入低地址单元,高字节存入高地址单元。所以da1定义的字数据1234h在内存中的存放顺序是34h、12h而不是12h、34h。你可能是这个地方弄错了,结果就成了68h了 bx的值是da2定义的第一个字节数据56h在内存中的偏移地址。因为数据段中定义的所有数据的地址从0开始顺序加1(以字节为单位),56h是第三个字节,bx的值当然为0002h
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
卡卡的实力到底有多强
美鑫沙发在什么地方啊,我要过去处理事情
低音炮上fromamplifielspeaker是什么意思
芝麻信用贷款 是不是给把支付宝账号给别人呀
请问兄弟姐妹们.我今天从网上查了一下我车子
好记伴手礼地址在哪,我要去那里办事
干扰性房室脱节是怎么回事
我记得有一部电影跟超能力有关的 里面还有金
上海离北京有多远?谢谢
excet转换成pdf打开之后发现图片被一条条白线
有聊电话更新后怎么不能用了
苏州法兰奇软体家具厂我想知道这个在什么地方
福州市区哪几个地方有连江县的班车?
翔云锦苑北门怎么去啊,有知道地址的么
汽车前轮颠簸时异响
推荐资讯
求王梦珂我爱你藏头诗。
如何将iphone中的录音导入电脑
9·9淘宝屋地址有知道的么?有点事想过去
求助,外接显卡电脑不能识别
麦琪尔蛋糕(意墅蓝山店)地址在什么地方,想过
北头地址在哪,我要去那里办事
鲁皖苏浙是什么省?
米莎干洗地址在哪,我要去那里办事
大家,中国石油大学的考研难度有多大
百兴源在什么地方啊,我要过去处理事情
金信达二手车行地址在哪,我要去那里办事
清真谭家伊兰拌面(连锁二店)我想知道这个在什
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?