紧急求救!2002年casl试题疑问

ymyz 2003-10-10 01:40:33
试题:
Y START
LEA GR1,0
___(1)______
S0 LEA GR3,4
S1 LD GR0,SJ,GR2
____(2)__________
ST GR0,WK
______(3)_____
OR GR4,WK
LEA GR3,-1,GR3
JNZ S2
ST GR4,YS,GR1
LEA GR1,1,GR1
____(4)______
S2 LEA GR2,1,GR2
CPL GR2,C80
____(5)___
WL EXIT
SJ DS 80
WK DS 1
CF DC #000F
C80 DC 80
YS DS 20
END

答案:1、LEA GR2,0
2、AND GR0,CF
3、SLL GR4,4
4、LEA GR3,4
5、JNZ S1

疑问1:GR4中的内容是什么?不需要赋初值么?
2:最后一空可以用JMI S1吗?为什么?
...全文
18 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ymyz 2003-10-11
  • 打赏
  • 举报
回复
谢谢楼上各位!
zmjrose 2003-10-10
  • 打赏
  • 举报
回复
同意楼上。
muzhi116 2003-10-10
  • 打赏
  • 举报
回复
1、GR4用于存放正处理的一个字(四个BCD码压缩),GR4的值不用赋初值,因为连续左移4次后,原内容也就不在了。
2、我觉得JMI S1可以,因为GR2最大为79,79-80(C80)<0,跳转;当GR2再加1为80时,80-80=0,但同时也不小于0了,及等于0或不小于0就退出循环,结束;不等于0(JNZ S1)或小于0(JMI S1)就继续循环。
shixiaoxiang 2003-10-10
  • 打赏
  • 举报
回复
GR4是栈顶的内容吧
xray88 2003-10-10
  • 打赏
  • 举报
回复
1.可以看出,GR4共进行了4次左移4位的运算,因此其初始值无论为何内容都被全部移出,故无需赋初值.
2.最后一空当然可以用JMI S1,因为这里GR2始终进行的是加1运算,当其值累加到等于80时应终止循环,用JMI S1或JNZ S1都是相同的意思.或者写成如下的形式可能更容易理解:
for(i=0;i<80;i++)

for(i=0;i!=80;i++)
的意义显然是相同的.也可以是:
i=0;
while(i<80)
{
...
i=i+1;
}

i=0;
while(i!=80)
{
...
i=i+1;
}
yhcyzc 2003-10-10
  • 打赏
  • 举报
回复
1.GR4的内容是在左移4位后才与WK或运算,不用理会初值.
2.我觉得非负跳转可以.

2,948

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧