CASL题,请教高手
子程序MOVE是将地址为A开始的N个存储单元移动到地址为B开始的N个存储单元中,对于两个区域互相重叠的情况也能正确处理。
主程序在GR1中给出存放子程序所需参数的起始地址。参数的存放形式为:
┌──────┐
(GR1)+0 │ A │
├──────┤
+1 │ B │
├──────┤
+2 │ N │
└──────┘
●程序
1 MOVE START
2 LD GR2,1,GR1
3 LD GR3,0,GR1
4 CPL GR3,1,GR1
5 JZE ENDMOV
6 _____(1)_____
7 _____(2)_____
8 JMP SAVE
9 LT _____(3)_____
10 LEA GR3,____(4)____
11 _____(5)_____
12 LEA GR2,____(6)____
13 _____(7)_____
14 SAVE ST GR0,WORK
15 LD GR1,2,GR1
16 LOOP LD GR0,0,GR3
17 ST GR0,0,GR2
18 ADD GR2,WORK
19 ADD GR3,WORK
20 LEA GR1,-1,GR1
21 JNZ LOOP
22 ENDMOV RET
23 WORK DS 1
24 END
答案是(1) JMI LT (2) LEA GR0,1
(3) ADD GR3,2,GR1 (4) -1,GR3
(5) ADD GR2,2,GR1 (6) -1,GR2
(7) LEA GR0,-1或LEA GR0,65535
答案是如何得出的?能否详细说明?多谢!