首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
[程序] 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
70
问题
[程序]
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和问题2,将解答填入答题纸的对应栏内。【说明】某航空公司的会员卡分为普卡、银卡、金卡和白金卡4个级别,会员每次搭乘该航空公司航班均可能获得积分,积分规则如表2-1所示。此外,银卡及以上级别会员有额外积分奖励,奖励规则如表
阅读下列说明,回答问题,将解答写在答题纸的对应栏内。【说明】某软件的积分计算模块每天定时根据用户发布的文章数、文章阅读数来统计用户所获取的积分,用户分为普通用户和专家用户,两类用户具有不同的积分系数。图4-1是该模块的类图,图中属性和
阅读下列说明,回答问题,将解答填入答题纸的对应栏内。【说明】某公司欲开发一套基于Web的房屋中介系统,以有效管理房源和客户,提升成交效率。该系统的主要功能是:(1)房源管理。员工或客户对客户拟出售/出租的意向房进行登记和管理。(2)客户管理。员工对
阅读下列C程序,回答问题,将解答填入答题纸的对应栏内。【C程序】staticvoidpermute_args(intpanonopt_start,intpanonopt_end,intopt_end,intncycle){
阅读下列说明,回答问题,将解答填入答题纸的对应栏内。【说明】某航空公司进行促销活动,会员在指定日期范围内搭乘航班将获得一定奖励,奖励分为4个档次,由乘机次数和点数共同决定,如表2-1所示。其中点数跟票面价格和购票渠道有关,规则如表2-2所示。航空公
某数据库中有供应商关系S和零件关系P,其中,供应商关系模式S(Sno,Sname,SZip,City)中的属性分别表示;供应商代码、供应商名、邮编、供应商所在城市;零件关系模式P(Pno,Pname,Color,Weight,City)中的属性分别表示:
下列要素中,不属于DFD的是(22)。当使用DFD对一个工资系统进行建模时,(23)可以被认定为外部实体。
为了解决进程间的同步和互斥问题,通常采用一种称为(21)机制的方法。若系统中有5个进程共享若干个资源R,每个进程都需要4个资源R,那么使系统不发生死锁的资源R的最少数目是(22)。
针对下面程序段,边界值问题可以定位在(62)1:RemCregea10elementintegerarray2:RemInitializeeachelementto-13:Dimdata(10)As
随机试题
在石油沥青防腐中,熬制沥青时,应经常搅拌并清除漂浮物。
对于淋巴管及淋巴回流的描述,不正确的是
原核基因表达调控中的诱导现象是指
25岁女性,孕50天行人工流产术,术后14天仍有阴道流血,妇科检查子宫如40天妊娠大小,附件正常。初步考虑的诊断是
7月8日上午,某公司施工人员刘某到现场巡查发现l号机和3号高加汽侧管道底部放水管(属于压力管道)有泄漏,随机向汽机检修班汇报缺陷情况,汽机检修班副班长吴某立即将此情况向汽机检修分部经理和设备部点检员报告,汽机检修分部经理袁某接到报告后,考虑到泄漏点不大,决
在确定企业的收益分配政策时,应当考虑相关因素的影响,其中“资本保全约束”属于()。
形而上学唯物主义物质观的错误在于()。
设X1,X2,…,Xn为来自总体N(μ,σ2)的简单随机样本,样本均值=9.5,参数μ的置信度为0.95的双侧置信区间的置信上限为10.8,则μ的置信度为0.95的双侧置信区间为________。
Theygavea________welcometotheirspecialguest.
Somepeopleseemtohaveaknack(诀窍)forlearninglanguages.Theycanpickupnewvocabulary,masterrulesofgrammar,andlearn
最新回复
(
0
)