; //*************************************//
; // //
; // 复杂模型机实验指令文件 //
; // //
; // By TangDu CO.,LTD //
; // //
; //*************************************//
; //***** Start Of Main Memory Data *****//
$P 00 20 ; START: IN R0,00H 从IN单元读入计数初值
$P 01 00
$P 02 D0 ; STA 6FH,R0 ------------------------
$P 03 6F
$P 04 70 ; INC R0 -----------------------
$P 05 70 ; INC R0 -----------------------
$P 06 61 ; LDI R1,0FH 立即数0FH送R1
$P 07 0F
$P 08 14 ; AND R0,R1 得到R0低四位
$P 09 61 ; LDI R1,00H 装入和初值00H
$P 0A 00
$P 0B F0 ; BZC RESULT 计数值为0则跳转
$P 0C 1C
$P 0D 62 ; LDI R2,60H 读入数据始地址
$P 0E 60
$P 0F CB ; LOOP: LAD R3,[RI],00H 从MEM读入数据送R3,变址寻址,偏移量为00H
$P 10 00
$P 11 0D ; ADD R1,R3 累加求和
$P 12 D9 ; STA [R2]+11H,R1 -----------------------------Here
$P 13 11
$P 14 72 ; INC R2 变址寄存加1,指向下一数据
$P 15 63 ; LDI R3,01H 装入比较值
$P 16 01
$P 17 8C ; SUB R0,R3
$P 18 F0 ; BZC RESULT 相减为0,表示求和完毕
$P 19 1C
$P 1A E0 ; JMP LOOP 未完则继续
$P 1B 0F
$P 1C D1 ; RESULT: STA 70H,R1 和存于MEM的70H单元
$P 1D 70
$P 1E 34 ; OUT 40H,R1 和在OUT单元显示
$P 1F 40
$P 20 E0 ; JMP START 跳转至START
$P 21 00
$P 22 50 ; HLT 停机
$P 60 01 ; 数据
$P 61 02
$P 62 03
$P 63 04
$P 64 05
$P 65 06
$P 66 07
$P 67 08
$P 68 09
$P 69 0A
$P 6A 0B
$P 6B 0C
$P 6C 0D
$P 6D 0E
$P 6E 0F
; //***** End Of Main Memory Data *****//
; //** Start Of MicroController Data **//
$M 00 000001 ; NOP
$M 01 006D43 ; PC->AR, PC加1
$M 03 107070 ; MEM->IR, P<1>
$M 04 002405 ; RS->B
$M 05 04B201 ; A加B->RD
$M 06 002407 ; RS->B
$M 07 013201 ; A与B->RD
$M 08 106009 ; MEM->AR
$M 09 183001 ; IO->RD
$M 0A 106010 ; MEM->AR
$M 0B 000001 ; NOP
$M 0C 103001 ; MEM->RD
$M 0D 200601 ; RD->MEM
$M 0E 005341 ; A->PC
$M 0F 0000CB ; NOP, P<3>
$M 10 280401 ; RS->IO
$M 11 103001 ; MEM->RD
$M 12 06B201 ; A加1->RD
$M 13 002414 ; RS->B
$M 14 05B201 ; A减B->RD
$M 15 002416 ; RS->B
$M 16 01B201 ; A或B->RD
$M 17 002418 ; RS->B
$M 18 02B201 ; A右环移->RD
$M 1B 005341 ; A->PC
$M 1C 10101D ; MEM->A
$M 1D 10608C ; MEM->AR, P<2>
$M 1E 10601F ; MEM->AR
$M 1F 101020 ; MEM->A
$M 20 10608C ; MEM->AR, P<2>
$M 28 101029 ; MEM->A
$M 29 00282A ; RI->B
$M 2A 04E22B ; A加B->AR
$M 2B 04928C ; A加B->A, P<2>
$M 2C 10102D ; MEM->A
$M 2D 002C2E ; PC->B
$M 2E 04E22F ; A加B->AR
$M 2F 04928C ; A加B->A, P<2>
$M 30 001604 ; RD->A
$M 31 001606 ; RD->A
$M 32 006D48 ; PC->AR, PC加1
$M 33 006D4A ; PC->AR, PC加1
$M 34 003401 ; RS->RD
$M 35 000035 ; NOP
$M 36 006D51 ; PC->AR, PC加1
$M 37 001612 ; RD->A
$M 38 001613 ; RD->A
$M 39 001615 ; RD->A
$M 3A 001617 ; RD->A
$M 3B 000001 ; NOP
$M 3C 006D5C ; PC->AR, PC加1
$M 3D 006D5E ; PC->AR, PC加1
$M 3E 006D68 ; PC->AR, PC加1
$M 3F 006D6C ; PC->AR, PC加1
; //** End Of MicroController Data **//