首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
[程序] START PRUGBC LD GR0,DATA LEA GR1,0 LEA GR3,48 LOOP1
[程序] START PRUGBC LD GR0,DATA LEA GR1,0 LEA GR3,48 LOOP1
admin
2005-03-15
60
问题
[程序]
START
PRUGBC LD GR0,DATA
LEA GR1,0
LEA GR3,48
LOOP1 CPL GR0,WDT,GR1
JP2 LOOP2
ST GR3,BTASC,GR1
LEA GR1,1,GR1
LEA GR2,-4,GR1
JN2 LOOP1
(1)
LOOP2 LEA GR2,48
LOOP3 CPL GR0,WDT,GR1
JMI NEXT
(2)
LEA GR2,1,GR2
JMP LOOP3
NEXT (3)
LEA GR1,1,GR1
LEA GR2,-4,GR1
JNZ LOOP2
LAST (4) ;处理个位数
(5)
EXIT
C48 DC 48
WDT DC 10000
DC 1000
DC 100
DC 10
BTASC DS 5
DATA DC #FA59H
END
选项
答案
(1)JMP LAST (2)SUB GR0,WDT,GR1 (3)ST GR2,BTASC,GR1 (4)ADD GR0,C48 (5)ST GR0,BTASC,GR1
解析
本程序是将16位无符号二进制数转换为5位十进制数。
程序的前3句是对寄存器赋初值,DATA数据(即要转换的数)被读取到GR0,GR1置为0,GR3置为48。第四句是一个逻辑比较语句(从这个语句可以看出,GR1用作 WDT的偏移地址),比较GR0和WDT中的数据的大小。
WDT开始的5个连续空间的数据分别为“10000,1000,100,10,5”。因为当前的 GR1为0,所以WDT对应的为“10000”,当GR0大于等于(WDT)时转LOOP2,小于 (WDT)则继续往下执行。其实在这种情况下,最好的分析方法就是把DATA中的数据自己手动转成十进制,然后把数据代到程序里,跟踪程序的执行,这样能最快的了解程序的执行流程和处理方法,同时也做了验证工作。
因为#FA59H转成十进制是64089。所以现在程序转到LOOP2执行。GR2置48,单从这里无法了解GR2是什么用途。比较GR0与(WDT+GR1)的大小,GR0比10000大,所以执行(2),再执行“LEAGR2,1,GR2”即把GR2自加1(结合题目提到的“转换结果用ASCH码表示”,可以了解到GR2的用途,因为48正好是ASCII码的“0”,自加就变成“1”了,所以GR2是统计GR0中(WDT+GR1)的个数并把它转化为ASCII码形式)。
然后再转向LOOP3执行,这样又回到了前面比较。在已知的语句中并没有对GR0, GR1进行变动,所以(2)中一定是对这2个寄存器值的改变,不然这段循环就成了死循环了。结合“LEAGR2,1,GR2”的功能,可知(2)应是对GR0自减一个(WDT+GR1),即 SUB GR0,WDT,GR1。
程序分析到这里,可以了解到NEXT标号后的语句是为下一步的统计做准备,即首先保存上一步已统计的“10000”的个数,再为统计“1000”的个数,为寄存器置初始值,程序已有“LEA GR1,1,GR1”,它能使WDT+GR”指向1000,所以(3)空要完成的功能是把“10000”的个数放到指定的位置,又因为题目中提到“转换结果用ASCII码表示,并从高位至低位依次存放在首地址为BTASC的连续5个内存单元中”,所以(3)空应填ST GR2,BTASC,GR1。
接下来执行“LEAGR2,-4,GR1”GR1中存的是偏移量。当统计万位时,GR1为0;当统计千位时,GRl为1,要(GR1)-4为0,即GR1为4,应是统计个位数字。所以(4)和 (5)空是统计个位数字,其实这点在程序注释部分也有提及。
那么如何利用已知数据,且用2步完成功能呢?这里注意到一个重要寄存器GR0。 GR0中现存的数就是个位数了,因为通过上面的几次循环,GR0中高位都被减掉了,所以现在只需把GR0加上一个48,然后再存入(BTASC+4)内存空间即可。其实把GR0加 48的方法很多,但是一定要注意一个问题,不能用LEA GR0,48,GR0,因为GR0寄存器是不能用变址寻址的。又因为程序中用到了C48,但一直没有语句用到过,所以用 ADD GR0,C48是最合适的。至此(5)空毫无疑问填ST GR0,BTASC,GR1。
最后就剩(1)了。当万位为0时,就可以执行“JPZ LOOP2”后面的一段程序了,“ST GR3,BTASC,GR1”是把“0”存入BTASC+GR1位置。接下来的3条语句都已经很明显了,与程序的倒数第3,4,5条语句完成同样的功能,即判断是否已经处理到个位了,如果是,则直接转到LAST进行个位处理,所以(1)空应填JMP LAST。
转载请注明原文地址:https://kaotiyun.com/show/NyDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】某证券交易所为了方便提供证券交易服务,欲开发一个基于Web的证券交易平台。其主要功能包括客户开户,记录查询、存取款、股票交易等。客户信息包括姓名、.Email(必填且唯一)、
阅读下列说明,回答问题,将解答填入答题纸的对应栏内。【说明】某飞行器供油阀控制软件通过控制左右两边的油箱BL、BR向左右发动机EL、ER供油,既要保证飞行器的安全飞行,又要保证飞行器的平衡,该软件主要完成的功能如下:(1)无故障情况下
阅读下列说明,回答问题,将解答写在答题纸的对应栏内。【说明】某软件的积分计算模块每天定时根据用户发布的文章数、文章阅读数来统计用户所获取的积分,用户分为普通用户和专家用户,两类用户具有不同的积分系数。图4-1是该模块的类图,图中属性和
阅读下列说明,回答问题,将解答写在答题纸的对应栏内。【说明】某软件的积分计算模块每天定时根据用户发布的文章数、文章阅读数来统计用户所获取的积分,用户分为普通用户和专家用户,两类用户具有不同的积分系数。图4-1是该模块的类图,图中属性和
阅读下列C程序,回答问题,将解答填入答题纸的对应栏内。【C程序】intisbinary(constvoid*buf,constsizetbuf—fen){sizetsuspiciousbytes=0;sizettotal—by
某一确定性有限自动机(DFA)的状态转换图如下图所示,令d=0|1|2|…|9,则以下字符串中,不能被该DFA接受的是(33),与该DFA等价的正规式是(34)。(其中,ε表示空字符)①3857②1.2E+5③-123.④.
在GB/T 17544中,软件包质量要求包括三部分,即产品描述要求、(53)、程序和数据要求。
设关系模式R(A,B,C),传递依赖指的是(16);下列结论错误的是(17)。
以下(53)属于在GB/T18905《评价者用的过程》中定义软件评价过程的特性。①可重复性②可再现性③公正性④客观性⑤合理性
若关系R、S如下图所示,则R与S自然连接后的属性列数和元组个数分别为(28);π1,4(σ3=6(R×S))=(29)。
随机试题
脑性瘫痪病人可出现
A.肺癌筛查B.乳腺癌筛查C.肿瘤发病机制研究D.戒烟行为E.三阶梯止痛属于恶性肿瘤一级预防措施是
蛋白质一能量营养不良最常见的维生素缺乏是( )
维持DNA双螺旋结构稳定的因素有
女,55岁。近一个月来,头痛、乏力、早醒、坐立不安、常担心家人会出事,怀疑自已得了不治之症,给家庭带来麻烦,悲观失望。最可能的诊断是
某设有外遮阳装置的外窗,其玻璃遮阳系数为0.8,外遮阳系数为0.7,外窗的遮阳系数为()。
下列各项中不属于税务违法行政处罚的项目是()。
根据企业所得税法律制度的规定,下列各项中,不应计入应纳税所得额的有()。
根据以下资料,回答下列问题。某市2010年全年实现农业增加值124.3亿元,比上年下降1.6%。粮食播种面积22.3万公顷,比上年减少0.3万公顷;粮食产量115.7万吨,比上年下降7.3%。全市农业观光园1303个,比上年增加9个;观光园总
在神经纤维一次兴奋后的相对不应期时
最新回复
(
0
)