首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
[程序] 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
93
问题
[程序]
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(必填且唯一)、
阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。【说明】某航空公司的会员卡分为普卡、银卡、金卡和白金卡4个级别,会员每次搭乘该航空公司航班均可能获得积分,积分规则如表2-1所示。此外,银卡及以上级别会员有额外积分奖励,奖励规则如表
阅读下列说明,回答问题,将解答填入答题纸的对应栏内。【说明】某公司欲开发一套基于Web的房屋中介系统,以有效管理房源和客户,提升成交效率。该系统的主要功能是:(1)房源管理。员工或客户对客户拟出售/出租的意向房进行登记和管理。(2)客户管理。员工对
阅读下列说明,回答问题,将解答填入答题纸的对应栏内。【说明】某航空公司进行促销活动,会员在指定日期范围内搭乘航班将获得一定奖励,奖励分为4个档次,由乘机次数和点数共同决定,如表2-1所示。其中点数跟票面价格和购票渠道有关,规则如表2-2所示。航空公
某数据库中有供应商关系S和零件关系P,其中,供应商关系模式S(Sno,Sname,SZip,City)中的属性分别表示;供应商代码、供应商名、邮编、供应商所在城市;零件关系模式P(Pno,Pname,Color,Weight,City)中的属性分别表示:
在UML提供的图中,(36)用于描述系统与外部系统及用户之间的交互;(37)用于按时间顺序描述对象间的交互。
下列要素中,不属于DFD的是(22)。当使用DFD对一个工资系统进行建模时,(23)可以被认定为外部实体。
某系统的进程状态转换如下图所示。图中1、2、3和4分别表示引起状态转换时的不同原因。原因4是由于(9);一个进程状态转换会引起另一个进程状态转换的是(10)。
针对以下C语言程序段,对于(MaxNum,Type)的取值,至少需要(62)个测试用例能够满足判定覆盖的要求。while(MaxNum-->0){if(10==Type)x=y*2;elseif(100==Type)
以下(53)属于在GB/T18905《评价者用的过程》中定义软件评价过程的特性。①可重复性②可再现性③公正性④客观性⑤合理性
随机试题
下列处理中与队列有关的是()。
A.精神症状B.内分泌功能紊乱C.感觉障碍D.失语症E.视野损害颞叶深部或枕叶肿瘤出现
劳动者在同一用人单位连续工作满()以上,当事人双方同意延续劳动合同的,如果劳动者提出订立无固定期限的劳动合同,应当订立无固定期限的劳动合同。
绝缘配电线路与甲类火灾危险性的生产厂房、甲类物品库房、易燃、易爆材料堆场以及可燃或易燃、易爆液(气)体储罐的防火间距,应不小于杆塔高度的()。
在水平均质具有潜水自由面的含水层中进行单孔抽水试验如图7—20所示,已知水井半径rw=0.15m,影响半径R0=60m,含水层厚度H0=10m,水位降深Sw=3m,渗透系数k=25m/d,流量最接近下列()m3/d。
申购、赎回或者买卖基金份额的,基金季度报告中不得载明的事项有()。
社会知觉效应中,刻板印象的优点有()。
狱政管理的特点是()。
(2013年单选33)根据我国合同法规定,以书面形式做出承诺的,承诺的生效时间是()。
Whatwasthefirstlanguage?Howdidlanguagebegin,andwhereandwhen?Untilrecently,asensiblelinguistwouldlikelyto【S1】
最新回复
(
0
)