第3章_指令系统及汇 3.13指令中常用符号 在分类介绍各类指令之前,先对描述指令的一些符 号意义进行一些简单约定 l)Ri和Rn:R表示当前工作寄存器区中的工作寄存 器,表示0或1,即RO和R1。n表示0~7,即R0~R7,当前 工作寄存器的选定是由PSW的RS1和RS0位决定的 (2)#data:#表示立即数,data为8位常数。#data 是指包含在指令中的8位立即数
第3章 指令系统及汇编 3.1.3 指令中常用符号 在分类介绍各类指令之前, 先对描述指令的一些符 号意义进行一些简单约定: (1) Ri和Rn: R表示当前工作寄存器区中的工作寄存 器, i表示0或1, 即R0和R1。 n表示0~7, 即R0~R7, 当前 工作寄存器的选定是由PSW的RS1和RS0位决定的。 (2) #data: #表示立即数, data为8位常数。 #data 是指包含在指令中的8位立即数
第3章_指令系统及汇 (3)#data16:包含在指令中的16位立即数。 (4)rel:相对地址,以补码形式表示的地址偏移量,范 围为-128~+127,主要用于无条件相对短转移指令SJMP 和所有的条件转移指令中。 (5)addr16:16位目的地址。目的地址可在全部程序 存储器的64KB空间范围内,主要用于无条件长转移指令 LJMP和子程序长调用指令 LCALL中。 (6)addr11:1位目的地址。目的地址应与下条指令 处于相同的2KB程序存储器地址空间范围内,主要用于绝 对转移指令AJMP和子程序绝对调用指令 ACALL指令中
第3章 指令系统及汇编 (3) #data16: 包含在指令中的16位立即数。 (4) rel: 相对地址, 以补码形式表示的地址偏移量, 范 围为-128~+127, 主要用于无条件相对短转移指令SJMP 和所有的条件转移指令中。 (5) addr16: 16位目的地址。 目的地址可在全部程序 存储器的64 KB空间范围内, 主要用于无条件长转移指令 LJMP和子程序长调用指令LCALL中。 (6) addr11: 11位目的地址。 目的地址应与下条指令 处于相同的2 KB程序存储器地址空间范围内, 主要用于绝 对转移指令AJMP和子程序绝对调用指令ACALL指令中
第3章指令系统及汇编」 (7) direct:表示直接寻址的地址,即8位内部数据存 储器RAM的单元地址(0~127/255),或特殊功能寄存 器SFR的地址。对于SFR可直接用其名称来代替其直 接地址。 (8)bit:内部数据存储器RAM和特殊功能寄存器 SFR中的可直接寻址位地址 (9)@:间接寻址寄存器或基地址寄存器的前缀,如 Ri,@DPTR,表示寄存器间接寻址
第3章 指令系统及汇编 (7) direct: 表示直接寻址的地址, 即8位内部数据存 储器RAM的单元地址(0~127/255), 或特殊功能寄存 器SFR的地址。 对于SFR可直接用其名称来代替其直 接地址。 (8) bit: 内部数据存储器RAM和特殊功能寄存器 SFR中的可直接寻址位地址。 (9) @: 间接寻址寄存器或基地址寄存器的前缀, 如 @Ri, @DPTR, 表示寄存器间接寻址
第3章_指令系统及汇 (10)(X):表示X中的内容。 (11)(X):表示由X寻址的单元中的内容,即(X)作 地址,该地址的内容用(X)表示。 12)/和→符号:/表示对该位操作数取反,但不影 响该位的原值。→表示指令操作流程,将箭头一方的内 容,送入箭头另一方的单元中去
第3章 指令系统及汇编 (10) (X): 表示X中的内容。 (11) ((X)): 表示由X寻址的单元中的内容, 即(X)作 地址, 该地址的内容用((X))表示。 (12) / 和→符号: /表示对该位操作数取反, 但不影 响该位的原值。 →表示指令操作流程, 将箭头一方的内 容, 送入箭头另一方的单元中去
第3章_指令系统及汇 32寻址方式 3.21寄存器寻址 选定某寄存器,自该寄存器中读取或存放操作数, 以完成指令规定的操作,称为寄存器寻址 例如:MOVA,R0;(A)←(RO) 该指令的功能是把工作寄存器RO中的内容传送到 累加器A中,如:RO内容为FFH,则执该指令后A的内容 也为FFH。在该条指令中,源操作数和目的操作数是由 寻址R0和A寄存器得到的,故属于寄存器寻址。该指令 为单字节指令,机器代码为E8H
第3章 指令系统及汇编 3.2 寻址方式 3.2.1寄存器寻址 选定某寄存器, 自该寄存器中读取或存放操作数, 以完成指令规定的操作, 称为寄存器寻址。 例如: MOV A, R0 ; (A)←(R0) 该指令的功能是把工作寄存器R0中的内容传送到 累加器A中, 如: R0内容为FFH, 则执该指令后A的内容 也为FFH。 在该条指令中, 源操作数和目的操作数是由 寻址R0和A寄存器得到的, 故属于寄存器寻址。 该指令 为单字节指令, 机器代码为E8H