327相对寻址方式 相对寻址是在相对转移指令中,根据地址相对当前 PC的偏移量得到操作数的方式。如: re 偏移量rel是一带符号8位二进数的补码数,范围 为-128~+127。实际书写程序时往往先用地址标号代 替,在汇编为机器指令时再计算出来
3.2.7 相对寻址方式 相对寻址是在相对转移指令中,根据地址相对当前 PC的偏移量得到操作数的方式。如: JZ rel 偏移量rel是一带符号8位二进数的补码数,范围 为-128~+127。实际书写程序时往往先用地址标号代 替,在汇编为机器指令时再计算出来
〔例3-1)指出下列每一条指令的寻址方式。 ①MOV2FH,#40H ①中的源操作数为立即寻址,目的 操作数为直接寻址。 ②MOVA@R0 ②中的源操作数为寄存器间接寻址 目的操作数为寄存器寻址。 ③ MOV DPTR,#2020H③中的源操作数为16位立即寻址 目的操作数为寄存器寻址。 ④MOV45H,P0 ④中的源操作数和目的操作数都是 直接寻址。 ⑤MOVA,R1 ⑤中的源操作数和目的操作数都为 寄存器寻址。 ⑥ MOVCA,@A+PC ⑥中的源操作数为基址加变址寻址 目的操作数为寄存器寻址。 ⑦ JC LOOP ⑦中的操作数为相对寻址
〔例3-1〕 指出下列每一条指令的寻址方式。 ①MOV 2FH,#40H ②MOV A,@R0 ③MOV DPTR,#2020H ④MOV 45H,P0 ⑤MOV A,R1 ⑥MOVC A,@A+PC ⑦JC LOOP ①中的源操作数为立即寻址,目的 操作数为直接寻址。 ②中的源操作数为寄存器间接寻址, 目的操作数为寄存器寻址。 ③中的源操作数为16位立即寻址, 目的操作数为寄存器寻址。 ④中的源操作数和目的操作数都是 直接寻址。 ⑤中的源操作数和目的操作数都为 寄存器寻址。 ⑥中的源操作数为基址加变址寻址, 目的操作数为寄存器寻址。 ⑦中的操作数为相对寻址
〔例3-2〕判断下列指令是否正确,若不正确请指 出错误: ①MOVA,DPTR ② MOV DPTR,#03H ③MOV#8OH,R7 ④MOVB,C 〔解〕①不正确。A是8位寄存器,DPTR为16位寄 存器,不匹配。 ②正确。 ③不正确。#80H为立即数,不能作为目的地址 ④不正确。B为8位字节寄存器,C为1位位累加器 不匹配
〔例3-2〕 判断下列指令是否正确,若不正确请指 出错误: ①MOV A,DPTR ②MOV DPTR,#03H ③MOV #80H,R7 ④MOV B,C 〔解〕①不正确。A是8位寄存器,DPTR为16位寄 存器,不匹配。 ②正确。 ③不正确。#80H为立即数,不能作为目的地址。 ④不正确。B为8位字节寄存器,C为1位位累加器, 不匹配
3.3数据传送指令 331内部RAM数据传送指令 1通用传送指令MOV 指令格式:MOV<目的操作数>,<源操作数> 功能:把源操作数所表示的数据传送到目的地址 指定的存贮单元之中,而不改变源操作数。即该指令 是“复制”,不是“搬家′
3.3 数据传送指令 1.通用传送指令MOV 指令格式:MOV <目的操作数> ,<源操作数> 功能:把源操作数所表示的数据传送到目的地址 指定的存贮单元之中,而不改变源操作数。即该指令 是“复制”,不是“搬家” 。 3.3.1内部RAM数据传送指令
通用指令 1)以累加器A为目的地址的指令 MOV A R A←(Rn) MOV A direct A←( direct) MOVA,@R1;A←(R) MOV A#data ;A←data 2)以R为目的地址的指令 MOV RA Rn←(A) MOV R, direct ,R +(direct) MOV R,#data Rn←data
通用指令 2)以Rn为目的地址的指令 MOV Rn,A ;Rn ← (A) MOV Rn,direct ;Rn ← (direct) MOV Rn,#data ;Rn ← data 1)以累加器A为目的地址的指令 MOV A,Rn ;A ← (Rn ) MOV A,direct ;A ← (direct) MOV A,@Ri ;A ← ((Ri )) MOV A,#data ;A ← data