温州微网站制作公司电话,广东贸易网站建设,深圳广告公司电话,网页制作软件属于---- 整理自B站UP主 踌躇月光 的视频 文章目录 1. CPU 电路2. 数据传送指令的几种情况3. 实验工程4. 实验结果 1. CPU 电路 2. 数据传送指令的几种情况
# program.asm; 1.
; MOV A, 5;; 2.
; MOV A, B;; 3.
; MOV A, [5];; 4.
; MOV B, 6
; MOV A, [B]; 5.
; MOV [0x2f], 5;; … ---- 整理自B站UP主 踌躇月光 的视频 文章目录 1. CPU 电路2. 数据传送指令的几种情况3. 实验工程4. 实验结果 1. CPU 电路 2. 数据传送指令的几种情况
# program.asm; 1.
; MOV A, 5;; 2.
; MOV A, B;; 3.
; MOV A, [5];; 4.
; MOV B, 6
; MOV A, [B]; 5.
; MOV [0x2f], 5;; 6.
; MOV A, 0x18
; MOV [0x2f], A; 7.
; MOV [0x2e], 0x18
; MOV [0x2f], [0x2e]; 8.
; MOV [0x18], 0xfe
; MOV A, 0x18
; MOV [0x2f], [A]; 9.
; MOV A, 0x18
; MOV [A], 5; 10.
; MOV A, 0x18
; MOV B, 0x33
; MOV [A], B; 11.
; MOV [0x30], 0xdd
; MOV A, 0x18
; MOV [A], [0x30]; 12.
; MOV [0x30], 0xee
; MOV B, 0x30
; MOV A, 0x18
; MOV [A], [B]HLT;3. 实验工程
【27 - 数据传送指令】
import pinFETCH [pin.PC_OUT | pin.MAR_IN,pin.RAM_OUT | pin.IR_IN | pin.PC_INC,pin.PC_OUT | pin.MAR_IN,pin.RAM_OUT | pin.DST_IN | pin.PC_INC,pin.PC_OUT | pin.MAR_IN,pin.RAM_OUT | pin.SRC_IN | pin.PC_INC,
]MOV 0 | pin.ADDR2 # MOV指令定义为 1000 xxxx
ADD (1 pin.ADDR2_SHIFT) | pin.ADDR2 # ADD指令定义为 1001 xxxxNOP 0
HLT 0x3fINSTRUCTIONS {2: { # 二地址指令MOV: { # MOV指令寻址方式(pin.AM_REG, pin.AM_INS): [ # (寄存器寻址立即寻址) MOV A,5pin.DST_W | pin.SRC_OUT, # 微指令读取SRC寄存器里数据(5)送入DST指定的寄存器(A)中],(pin.AM_REG, pin.AM_REG): [ # MOV A, Bpin.DST_W | pin.SRC_R # 写寄存器A读寄存器B],(pin.AM_REG, pin.AM_DIR): [ # MOV A, [5]pin.SRC_OUT | pin.MAR_IN, # 从SRC寄存器读送到MAR寄存器RAM地址上pin.DST_W | pin.RAM_OUT # 读取RAM指定地址的数据写到寄存器A],(pin.AM_REG, pin.AM_RAM): [ # MOV A, [B]pin.SRC_R | pin.MAR_IN, # 读取寄存器B数据送到MAR寄存器RAM地址上pin.DST_W | pin.RAM_OUT # 读取RAM指定地址的数据写到寄存器A],(pin.AM_DIR, pin.AM_INS): [ # MOV [0x2f], 5pin.DST_OUT | pin.MAR_IN, # 读取DST寄存器数据送到MAR寄存器RAM地址上pin.RAM_IN | pin.SRC_OUT # 从SRC寄存器读取数据5写入RAM中],(pin.AM_DIR, pin.AM_REG): [ # MOV [0x2f], Apin.DST_OUT | pin.MAR_IN,pin.RAM_IN | pin.SRC_R],(pin.AM_DIR, pin.AM_DIR): [ # MOV [0x2f], [0x2e]pin.SRC_OUT | pin.MAR_IN,pin.RAM_OUT | pin.T1_IN,pin.DST_OUT | pin.MAR_IN,pin.RAM_IN | pin.T1_OUT],(pin.AM_DIR, pin.AM_RAM): [ # MOV [0x2f], [A]pin.SRC_R | pin.MAR_IN,pin.RAM_OUT | pin.T1_IN,pin.DST_OUT | pin.MAR_IN,pin.RAM_IN | pin.T1_OUT],(pin.AM_RAM, pin.AM_INS): [ # MOV [A], 5pin.DST_R | pin.MAR_IN,pin.RAM_IN | pin.SRC_OUT],(pin.AM_RAM, pin.AM_REG): [ # MOV [A], Bpin.DST_R | pin.MAR_IN,pin.RAM_IN | pin.SRC_R],(pin.AM_RAM, pin.AM_DIR): [ # MOV [A], [0x30]pin.SRC_OUT | pin.MAR_IN,pin.RAM_OUT | pin.T1_IN,pin.DST_R | pin.MAR_IN,pin.RAM_IN | pin.T1_OUT],(pin.AM_RAM, pin.AM_RAM): [ # MOV [A], [B]pin.SRC_R | pin.MAR_IN,pin.RAM_OUT | pin.T1_IN,pin.DST_R | pin.MAR_IN,pin.RAM_IN | pin.T1_OUT],}},1: {}, # 一地址指令0: { # 零地址指令NOP: [pin.CYC, # 让指令周期清零跳过这次指令],HLT: [pin.HLT, # 指令停止]}
}# print(bin(MOV))编译工程中的 controller.py 生成 micro.bin加载进入到 CPU 控制单元上的 ROM 中编译工程中的 compiler.py 生成汇编的编译结果 program.bin加载到 RAM 中运行
4. 实验结果
依次将 2. 中的集中情况的注释打开编译运行这里只给出最后一次的结果。
...; 12.
MOV [0x30], 0xee
MOV B, 0x30
MOV A, 0x18
MOV [A], [B]HLT;
...