立即数寻址: 参与运算的数据为指令的操作数。例如 “SUB
A,#10H”是从累加器A中减去立即数10H,结果存入累加器A。
2) 程序清单
MOV A,#01H 立即数寻址,传送指令,将01h传送给累加器a LOOP:
MOV R0,#01H 立即数寻址,将01h传送给r0
ADD A,R0 寄存器寻址,加法操作,将r0的值与a相加,结果存入a中 SUB A,@R0 寄存器间接寻址,减法将R0的值当作是内存地址,再
将此地址的值与A相减,最后放入A。
ADD A,01H 存储器直接寻址,寻找出01地址中的值,
用A和此地址的值相加,最后放入A
CPL A 累加器寻址,将a的值取反 OUT
JMP LOOP //无条件跳转,跳转到LOOP
3) 指令流程图
MOV A,#01H
PC—>MAR (PC+1—>PC) MAR—>EM EM—>IR 、uPC EM—>A (PC+1—>PC) 第 6 页 共 13 页
MOV R0,#01H
ADD A,R0
第 7 页 共 13 页 PC—>MAR (PC+1— >PC) MAR— >EM EM—>IR 、uPC EM— >R0 (PC+1 —>PC)
PC—>MAR (PC+1—>PC) MAR—>EM EM—>IR 、uPC R0—>W W+A—>A (PC+1—>PC)
SUB A,@R0
ADD,02H
第 8 页 共 13 页
PC—>MAR (PC+1— >PC) MAR— >EM EM—>IR 、uPC R0—>MAR MAR— >EM EM—>W A-W—>A (PC+1 —>PC) PC—>MAR (PC+1—>PC)
MAR—>EM
EM—>IR 、uPC
CPLA
第 9 页 共 13 页
EM—>MAR 02H—>EM EM—>W A&W—>A (PC+1—>PC) PC—>MAR (PC+1—>PC) MAR—>EM EM—>IR 、uPC A—>~A (PC+1—>PC)
OUT PC—>MAR (PC+1—>PC)
JMP LOOP
第 10 页 共 13 页
MAR—>EM EM—>IR 、uPC A—>OUT (PC+1—>PC) PC—>MAR (PC+1—>PC) MAR—>EM EM—>IR 、uPC IR—>PC (PC+1— >PC)