关于去年casl一题
本程序将80个ASCII编码的数字字符转换成BCD码(二十进制),并将每四个BCD码压缩在一个字中。见下面图示。
程序中约定原始数字字符存放在SJ开始的连续区中,转换和压缩结果存放在YS开始的连续存区中。
数字字符 压缩后的数据
________________ _________________
地址|ASCII 地址|BCD码
SJ |0033H ‘3’ YS |3682H
+1 |0036H ‘6’ .. |...
+2 |0038H ‘8’
。。|。。。
Y START
LEA GR1,0
_(a)LEA GR2,0_____
S0 LEA GR3,4
S1 LD GR0,SJ,GR2
_(2)AND GR0,CF___
ST GR0,WK
_(3)SLL GR4,4___ //请问在此之前,为什么没对GR4赋值
OR GR4,WK
LEA GR3,-1,GR3
JNZ S2
ST GR4,YS,GR1
LEA GR1,1,GR1
_(4)LEA GR3,4___
S2 LEA GR2,1,GR2
CPL GR2,C80
_(5)JNZ S1______
WL EXIT
SJ DS 80
WK DS 1
CF DC #000F
C80 DC 80
YS DS 20
END