; CSE 30. Bennet Yee . Oct 19, 1999. ; Extended macro assembly example. ; asm file -- macro definitions removed, and macro usages expanded .data zero: .word 0 ; "constant" zero ; woe if this is ever changed tmp: .word 0 ; a global tmp for goto .data mul16A: .word 0 mul16B: .word 0 .data s16tmp: .word 0 .data ptr1: .word 0 ptr2: .word 0 clear_inc: .word -triple(1,1,0) ; NOTE NEW NOTATION .data negcount: .word 0 negone: .word -1 ; 0xffffffffffff .text 0x0000 ;;; main: clearmem base,length main: .data L2val_000: .word L2_000 .text subz length,zero,Ldone_000 subz negcount,negcount,next subz negcount,length,next ;;; shift16 ptr1,base shift4 s16tmp,base shift4 ptr1,s16tmp shift4 s16tmp,ptr shift4 ptr1,s16tmp ;;; shift16 ptr2,ptr1 shift4 s16tmp,ptr1 shift4 ptr2,s16tmp shift4 s16tmp,ptr2 shift4 ptr2,s16tmp ;;; add L1_000,ptr1,ptr2 .data Ltmp_001: .word 0 .text subz Ltmp_001,Ltmp_001,next subz Ltmp_001,ptr1,next subz Ltmp_001,ptr2,next subz L1_000,L1_000,next subz L1_000,Ltmp_001,next ;;; add L1_000,L1_000,L2val_000 .data Ltmp_002: .word 0 .text subz Ltmp_002,Ltmp_002,next subz Ltmp_002,L1_000,next subz Ltmp_002,L2val_000,next subz L1_000,L1_000,next subz L1_000,Ltmp_002,next L1_000: .word 0 L2_000: subz negcount,negone,Ldone_000 subz L1_000,clear_inc,next subz tmp,tmp,L1_000 Ldone_000: done: subz tmp,tmp,done .data base: .word 0x1000 length: .word 0x0010 .data 0x1000 .word 0xdeadbeefdead ;0 .word 0xdeadbeefdead ;1 .word 0xdeadbeefdead ;2 .word 0xdeadbeefdead ;3 .word 0xdeadbeefdead ;4 .word 0xdeadbeefdead ;5 .word 0xdeadbeefdead ;6 .word 0xdeadbeefdead ;7 .word 0xdeadbeefdead ;8 .word 0xdeadbeefdead ;9 .word 0xdeadbeefdead ;a .word 0xdeadbeefdead ;b .word 0xdeadbeefdead ;c .word 0xdeadbeefdead ;d .word 0xdeadbeefdead ;e .word 0xdeadbeefdead ;f .word 0xdeadbeefdead ;0 .word 0xdeadbeefdead ;1 .word 0xdeadbeefdead ;2 .word 0xdeadbeefdead ;3 .word 0xdeadbeefdead ;4 .word 0xdeadbeefdead ;5 .word 0xdeadbeefdead ;6 .word 0xdeadbeefdead ;7 .word 0xdeadbeefdead ;8 .word 0xdeadbeefdead ;9 .word 0xdeadbeefdead ;a .word 0xdeadbeefdead ;b .word 0xdeadbeefdead ;c .word 0xdeadbeefdead ;d .word 0xdeadbeefdead ;e .word 0xdeadbeefdead ;f