指令存放格式 ◆指令在存储器中以二进制数形式、以字节为单位按 照地址递增的顺序存放。 ◆从低地址开始,先存放操作码,然后是操作数 “MOVA,#68H”,“MOB,#73H” 果 地址指令 ◇假设这两条指令存放起始地址是1000,100m174H 则存放的格式为: 1001H68H ◆左边一列表示的是程序存储器的地址 1002H75H ◆右边一列是存放在该地址单元中的二 1003H FOH 进制指令 1004H73H 102404 16:17:5
16:17:59 指令存放格式 指令在存储器中以二进制数形式、以字节为单位按 照地址递增的顺序存放。 从低地址开始,先存放操作码,然后是操作数。 18 10:24:04 地址 指令 … … 1000H 74H 1001H 68H 1002H 75H 1003H F0H 1004H 73H … … 假设这两条指令存放起始地址是1000H, 则存放的格式为: 左边一列表示的是程序存储器的地址 右边一列是存放在该地址单元中的二 进制指令。 “MOV A, #68H”, “MOV B, #73H” 存储器
程序执行过程 ◆程序执行时是依次逐条取出指令执行的。 ◆单片机内有一程序计数器PC,指向要执行的程序指令 代码存放的地址,具有自动加一特点,因而指令被逐字 节取出,然后译码执行 ◆首先取操作码74H,经译码得知这是一条两字节指令,其 操作是将立即数送到累加器A中,而操作数是以立即数 形式放在操作码的下一地址中,程序计数器自动加一, 将下一地址中数据68H取出来,送到累加器A中。 地址「指令 1000H|74H 1001H68H“MOA,#68H” 1002H75H 1003HF0H“MOB,#73H” 02404 1004H73H 16:17:5
16:17:59 程序执行过程 19 10:24:04 程序执行时是依次逐条取出指令执行的。 单片机内有一程序计数器PC, 指向要执行的程序指令 代码存放的地址, 具有自动加一特点,因而指令被逐字 节取出, 然后译码执行。 首先取操作码74H, 经译码得知这是一条两字节指令, 其 操作是将立即数送到累加器A中, 而操作数是以立即数 形式放在操作码的下一地址中, 程序计数器自动加一, 将下一地址中数据68H取出来,送到累加器A中。 地址 指令 1000H 74H 1001H 68H 1002H 75H 1003H F0H 1004H 73H … … “MOV A, #68H” “MOV B, #73H
程序执行过程 ◆程序计数器PC再次自动加一,指向下一条指令第一个 字节,取出75H,经译码知这是一条三字节指令,其操作 是将一立即数送到寄存器B中, ◆B用该指令第二个字节F0H来表示,F0H是寄存器B的地 址,该指令第三个字节内容就是要传送的立即数73H。 ◆这样随着程序计数器逐次加一,指令被一个字节一个字 节地取出、译码和执行。 地址「指令 1000H74H 1001H68H MOVA#68H 1002H75H 1003HFoH“MoⅴB,#73H 1004H73H 16:17:5
16:17:59 程序执行过程 20 程序计数器PC再次自动加一, 指向下一条指令第一个 字节,取出75H, 经译码知这是一条三字节指令, 其操作 是将一立即数送到寄存器B中, B用该指令第二个字节F0H来表示, F0H是寄存器B的地 址, 该指令第三个字节内容就是要传送的立即数73H。 这样随着程序计数器逐次加一, 指令被一个字节一个字 节地取出、译码和执行。 地址 指令 1000H 74H 1001H 68H 1002H 75H 1003H F0H 1004H 73H … … “MOV A, #68H” “MOV B, #73H
3.指令中的符号约定 ◇在描述单片机指令系统时,经常使用各种缩写符号: 各种符号及含义如表4-1所示。 A:累加器ACC(与A物理上相同,分别用于不同寻址方式) B:寄存器B CY:进(借)位标志位,在位操作指令中作为累加器使用 addre( direct):直接地址,代表8位内部RAM地址。SFR可 用名字 bit:位地址,内部RAM中的可寻址位和SFR中的寻址位 data8:8位常数(8位立即数,取值范围#00H~#0FFH。 data6:16位常数(16位立即数,取值#00~#0FFFH。 @:间接寻址,@R:寄存器间接寻址,i=0,1。 aDPTR 102404 16:17:5
16:17:59 3. 指令中的符号约定 在描述单片机指令系统时,经常使用各种缩写符号: 各种符号及含义如表4-1所示。 21 10:24:04 A: 累加器ACC(与A物理上相同, 分别用于不同寻址方式) B: 寄存器B CY: 进(借)位标志位, 在位操作指令中作为累加器使用 addr8(direct):直接地址, 代表8位内部RAM地址。SFR可 用名字 bit: 位地址, 内部RAM中的可寻址位和SFR中的寻址位。 #data8: 8位常数(8位立即数), 取值范围#00H~#0FFH。 #data16:16位常数(16位立即数), 取值#0000H~#0FFFFH。 @: 间接寻址, @Ri: 寄存器间接寻址, i=0, 1。 @DPTR
423指令中的符号约定表41 re:8位带符号地址偏移量,-128~+127(补码)。常用符号 表示,偏移量在汇编时由程序计算。 Rn:当前工作区(0~3区)的工作寄存器(n=0,1,…,7 R:可作地址寄存器的工作寄存器R0和R1(i=0,1)。 X:X寄存器内容。 (X):由X寄存器寻址的存储单元的内容。 →:表示数据的传送方向。 /:表示对该位操作数取反,如:/bit ∧:表示逻辑与 V:表示逻辑或 ⊕:表示逻辑异或 102404 16:17:5
16:17:59 4.2.3 指令中的符号约定 表4-1 22 10:24:04 rel: 8位带符号地址偏移量, -128~+127(补码)。常用符号 表示, 偏移量在汇编时由程序计算。 Rn: 当前工作区(0~3区)的工作寄存器(n=0,1,…,7)。 Ri: 可作地址寄存器的工作寄存器R0和R1(i=0, 1)。 X: X寄存器内容。 (X): 由X寄存器寻址的存储单元的内容。 →:表示数据的传送方向。 / :表示对该位操作数取反,如:/bit。 ∧: 表示逻辑与 ∨: 表示逻辑或 ⊕: 表示逻辑异或