则A中内容为(0000004000h),重复进行,直到第十次 (0000400000h-0000208000h>0)开始,将相减后的值左移1 位并加1存于A中,直到第十五次完成。SUBC是有条件减 法指令,语法为:SUBC Smem , src 其功能为: If (src-Smem<<15)≥0 src=(src-Smem<<15)<<1+1 Else src=src<<1
STL A,DAT2 ;将A累加器中的低16位(商003Fh)储存到DAT2所指定的
数据存储器单元(地址为DP+DAT2=0262h),(0262h)=003Fh
STH A,DAT3 ;将A累加器中的高16位(余数0001h)储存到DAT3所指定
的数据存储器单元(地址为DP+DAT3=0263h),(0263h)=0001h
NOP NOP NOP NOP
;平方操作: A = DAT0 * DAT0 bk4:
ST #0333h,DAT0 ;(DAT0)=(0260h)=0333h
SQUR DAT0,A ;操作数的平方,A = DAT0 * DAT0=A3C29h NOP NOP NOP NOP
;三数相加操作: DAT3 = DAT0 + DAT1 + DAT2 bk5:
ST #0034h,DAT0 ;(DAT0)=(0260h)=0034h
ST #0243h,DAT1 ;(DAT1)=(0261h)=0243h ST #1230h,DAT2 ;(DAT2)=(0262h)=1230h
ADD3 DAT0,DAT1,DAT2,DAT3 ;宏调用,宏参对应关系为 P1=(DAT0),
P2=(DAT1),P3=(DAT2), (DAT3)=ADDRP 其宏展开为:
ST #034h , 60h ;(0260h)=34h ST #234h , 61h ;(0261h)=243h ST #1230h , 62h ;(0262h)=1230h LD 60h , A ;(A)=0034h ADD 61h , A ;(A)=0277h ADD 62h , A ;(A)=14A7h STL A , 63h ;(0263h)=14A7h
NOP NOP NOP NOP B bk0
;循环执行,无条件跳转到行标号为bk0处继续往
下执行,该循环为死循环
bk6:
.end ;程序结束