当前位置:文档之家› R单片机指令系统

R单片机指令系统

R单片机指令系统
R单片机指令系统

第五章AVR单片机指令系统

计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。计算机只能识别和执行机器语言的指令。为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。

AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。

SL-DIY02-3开发实验器使用AT90S8535单片机,有118条指令, 而我们所做的11个实验程序仅用了34条指令, 我们重点讲这34条指令, 其余指令就可自学了。

AVR器件(指令速查表) 118条指令器件

1.不带进位加法

ADD一不带进位加

说明:两个寄存器不带进位C标志加,结果送目的寄存器Rd。

操作: RdRd+ Rr

语法:操作码:程序计数器:

ADD Rd,Rr O≤d≤31,0≤r≤31 PCPC+1 例子:。(实践操作程序实践操作例子*.ASM,必须编译生成*.OBJ文件才可调试,如要修改*.ASM,必须修改文件属性,去掉*.ASM只读文件属性2.带进位加法

ADC-一带进位加

说明:两个寄存器和C标志的内容相加,结果送目的寄存器Rd。

操作: Rd←Rd+Rr+C

语法:操作码:程序计数器:

ADC Rd,Rr 0≤d≤31,0≤r≤31 PC←PC+1

例子:(实践操作程序

3.减1指令

DEC一减1

说明:寄存器Rd的内容减1,结果送目的寄存器Rd中。

操作:RdRd-l

语法:操作码:程序计数器:

DEC Rd 0≤d≤31 PCPC十1 例子:(实践操作程序

4.立即数比较

CPI——带立即数比较

说明:该指令完成寄存器Rd和常数的比较操作。寄存器的内容不改变。该指令后能

使用所有条件转移指令。

操作:Rd-K

语法:操作码:程序计数器:

CPI Rd, K 16≤d≤31, 0≤ K≤255 PCPC + 1

例子:(实践操作程序

5.带立即数与

ANDI——立即数逻辑与 ;全1为1,有0即0

说明:寄存器Rd的内容与常数逻辑与,结果送目的寄存器Rd。

应用: 清0,使某位为0,用0去与;保留,用1去逻辑与;代硬件与门

操作:RdRd·K;

语法:操作码:程序计数器:

ANDI Rd K 16≤d≤31, 0≤K≤255 PCPC+ 1 例子:(实践操作程序

6.寄存器逻辑或

OR一逻辑或;有1即1,全0为0,

应用: 置数,使某位为1,用1去或;保留,用0去逻辑或;代硬件或门

说明:完成寄存器Rd与寄存器Rr的内容逻辑或操作,结果进目的寄存器Rd中。

操作: RdRd ∨ Rr

语法:操作码:程序计数器: OR Rd Rr 0≤d≤31, 0≤r≤31 PCPC+ 1 例子:(实践操作程序

7.清除寄存器

CLR-一寄存器清零

说明:寄存器清零。该指令采用寄存器Rd与自己的内容相异或实现的。寄存器

的所有位都被清零。

操作: RdRd ⊕Rd

语法:操作码:程序计数器:

CLR Rd 0≤d≤31 PCPC+ 1 例子:(实践操作程序

8.相对跳转

RJMP一相对跳转

说明:相对跳转到 PC -2K和 PC+2K(字)范围内的地址。在汇编程序中,标号用于替

代相对操作。AVR微控制器的程序存储器空间不超过4K字(8K字节),该指令能寻址整个

存储器空间的每个地址位置。

操作: PC(PC+1)+ k

语法:操作码:程序计数器:

RJMP k — 2K≤k≤2K PC(PC+1)+k 例子:(实践操作程序

9.相等转移

BREQ相等转移

说明:条件相对转移,测试零标志(Z),如果 Z位被置位,则相对PC 值转移。如果在执行CP、CPI、SUB或SUBI指令后立即执行该指令,且当寄存器Rd中无符号或有符号二进制数与寄存器 Rr中无符号或有符号H进制数相等时,转移将发生。

操作:If Rd=Rr(z=1)then PC(PC十1)+k,PCPC十1

语法:操作码:程序计数器:

BREQ k -64≤k≤+63 PC(PC+ 1)+ k

PCPC+ l

例子:(实践操作程序

10.不相等转移

BRNE——不相等转移

说明:条件相对转移,测试零标志(Z),如果Z位被清零,则相对PC 值转移。如果在执行CP。CPI、SUB或SUBI指令后立即执行该指令,且当在寄存器Rd中的无符号或带符号二进制数不等于寄存器Rr中的无符号或带符号二进制数时,转移将发生。该指令相对PC转移的方向为:PC- 64≤目的≤PC+ 63。参数K为PC的偏移,用2的补码表示(相当于指令BRBCIK)。

操作, If Rd≠Rr(Z=0) then PC(PC+1)+k,elesPCPC+1

语法:操作码:程序计数器:

BRNE k -64≤ k ≤+63 PC(PC+1)+ k

PCPC+l 例子:(实践操作程序

11.寄存器位清零跳行

SBRC一寄存器位被清零跳行

说明:该指令测试寄存器某位,如果该位被清零,则跳下一行执行指令。

操作:If Rd(b)= 0 then PCPC+2(or 3)eles PCPC+ 1

语法:操作码:程序计数器:

SBRC Rr,b 0≤ r≤ 31, 0≤ b≤7 PCPC十1

pCpC+ 2

PCPC+ 3

例子:(实践操作程序

12.寄存器位置位跳行

SBRS一寄存器位置位跳行

说明:该指令测试寄存器某位,如果该位被置位,则

跳下一行执行指令。

操作: If Rr(b)=l then PCPC+ 2(or 3)eles

PCPC+ l

语法:操作码:程序计数器:

SBRS Rr,b ≤r≤31,0≤b≤7 PCPC+1

PCPC+2

PCPC+3

例子:(实践操作程序

13.I/O寄存器位置位跳行

SBIS-I/O寄存器的位置位跳行

说明:该指令测试1/O寄存器某位,如果该位被置位,则跳一行执行指令。该指令在低

32个1/O寄存器内操作,地址为0~31。

操作: If I/OP, b=l then PCPC+2(or 3)

else PCPC+1

语法:操作码:程序计数

器:

SBIS p ,b 0≤ P≤ 31, 0≤ b≤ 7 PCPC+ 1

PCPC+ 2

PCPC+ 3

例子:(实践操作程序

14.相对调用

RCALL——相对调用于程序

说明:在PC+1后(2K字(4K字节)范围内调用子程序。返回地址(RCALL 后的指令地址)存储到堆栈(见CALL)。

操作:PC(PC+1)+k

语法:操作码:程序计数器:

RCALL k -2K≤ k ≤2K PC(PC+1)+ k 例子: (实践操作程序

15.从子程序返回

RET——子程序返回

说明:从子程序返回。返回地址从堆栈中弹出。

操作: PC(15-0)STACK

PC(21-0)STACK

语法:操作码:程序计数器:堆栈: RET None See Operation SPSP+ 2 RET None See Operation SPSP+ 3 例子:(实践操作程序见

16.从中断程序返回

RETI——中断返回

说明:从中断程序中返回。返回地址从堆栈中弹出,且全局中断标志被

置位。

注意:1.主程序应跳过中断区,防止修改补充中断程序带来麻烦;

2.不用的中断入口地址写上RETI-中断返回,有抗干扰作用;

操作: PC(15-0)STACK

PC(21-0)STACK

语法:操作码:程序计数器:堆栈:

RETI None See Operation SPSP十

2

RETI None See Operation SPSP +

3

例子:( 程序,摘自”乐曲.ASM”部分程序,仅供参考),能执行程序请阅”乐曲.ASM”程序及

AVR单片机在儿童智能玩具中的应用--音乐玩具(电脑放音机)一文

17.寄存器拷贝数据

MOV寄存器拷贝

说明:该指令将一个寄存器拷贝到另一个寄存器。源寄存器Rr的内容

不改变,而目的

寄存器Rd拷贝了Rr的内容。

操作:Rd ← Rr

语法:操作码:程序

计数器:

MOV Rd Rr 0≤d≤31,0≤r≤31 PCPC+ 1

例子:(实践操作程序

18.SRAM数据直接送寄存器

LDS直接从SRAM装入

说明:把SRAM中1个字节装入到寄存器。必须提供一个16位地址。存

储器访问被

限制在当前64K字节的SRAM页。超过64K字节,LDS指令使用RAMPZ寄存器

访问。

操作:Rd(k)

语法:操作码:程序计

数器:

LDS Rd k 0≤ d≤ 31,0≤ k≤65535 PCPC+

2

例子:(实践操作程序

19.寄存器数据直接送SRAM

STS寄存器数据直接送SRAM

说明:将寄存器的内容直接存储到SRAM。必须提供一个16位的地址。

存储器访问被限

制在当前64K字节的SRAM页。STS指令使用RAMPZ寄存器访问存储器可超过

64K字节。

操作:(k)Rr

语法:操作码:程

序计数器:

STS k,Rr 0≤r≤31,0≤k≤65535 PCPC+2

例子:(实践操作程序与相同)

20.立即数送寄存器

LDI——装入立即数

说明:装入一个8位立即数到寄存器R16~R31中。

操作:RdK

语法:操作码:程序计

数器:

LDI Rd K 16≤ d≤ 31, 0≤K≤ 255 PCPC+

2

例子:(实践操作程序

21.使用变址Z间接将SRAM中的内容传送到寄存器

LD(LDD)——使用变址Z间接将SRAM中的内容传送到寄存器

说明:带或不带偏移间接从SRAM中传送一个字节到寄存器,SRAM中的

位置由寄存器区中的 Z(16位)指针寄存器指出。存储器访问被限制在当前

64K字节的 SRAM页中。为访问另外SRAM页,则 I/O范围内的寄存器RAMPZ

需改变。在指令执行后,Z指针寄存器值要么不改变,要么就加1或减1操

作。使用Z指针寄存器的这些特性,特别适合于堆栈指针,因为Z指针寄存

器能用于直接子程序调用,直接跳转和查表。Z指针寄存器用作为专用堆栈

指针要比X、Y指针方便。

用Z指针在程序存储器中查表,可参见LPM指令。

操作:Rd(Z)

Rd(Z)

Z Z-1

Rd (Z+q)

语法:操作码:操作流程: 程序计数器:

LD Rd,Z 0≤ d≤31 送数,Z指针不改变 PCPC+1 LD Rd Z+ 0≤d≤31 先送数,后Z指针加1 PCPC+1

LD Rd,-Z 0≤d≤31 先Z指针减1, 后送数 PCPC+l

LDD Rd Z+q 0≤ d≤31,先Z指针加q,后送数, PCPC+1

0≤q≤63 执行后Z指针(Z不含q)不变

例子:(实践操作程序

22. LPM——装入程序存储器

说明:将Z寄存器指向的一个字节传送到寄存器0(RO)。该指令使100 %

空间有效,常

量初始化或常数取数特别有用。程序存储器被编为16位字,Z(16位)指针

的最低位(LSB)选

择为0是低字节,选择为1是高字节。该指令能寻址程序存储器第一个64K

字节(32字)。

操作:R0(Z)

语法:操作码:程序计数器: LPM None PCPC+ 1 例子:(实践操作程序,更详细资料阅”按钮猜数.ASM”)

23.I/O口数据传送到寄存器

IN——I/O口数据传送到寄存器

说明:将I/O空间(口,定时器,配置寄存器等)的数据传送到寄存

器区中的寄存器Rd中。

操作:RdP

语法:操作码:程序计数器: IN Rd P O≤ d≤31, 0≤ P≤63 PCPC+ 1 例子:(实践操作程序

24.寄存器数据送 I/ O口

OUT寄存器数据送 I/O口

说明:将寄存器区中寄存器 Rr的数据传送到 I/0空间(口、定时器、配置寄存器等)。

操作: P Rr

语法:操作码:程序计数器:

OUT P, Rr 0≤ r≤31, 0≤ P≤63 PCPC十1 例子:(实践操作程序

25.进栈指令

PUSH——压寄存器到堆栈

说明:该指令存储寄存器Rr的内容到堆栈。

操作: STACKRr

语法:操作码:程序计

数器:

PUSH Rr O ≤ d ≤31 PCPC+1 SPSP- 1

例子:(实践操作程序

26.出栈指令

POP——堆栈弹出到寄存器

说明:该指令将堆栈中的字节装入到寄存器Rd中。

操作:RdSTACK

语法:操作码:程序计数器:

POP Rd 0 ≤ d ≤31 PCPC+1 SPSP+ 1 例子:(实践操作程序

27.通过进位左循环

ROL—通过进位左循环

说明:寄存器Rd的所有位左移1位,C标志被移到Rd的第0位,Rd的

第7位移到C标志。

操作:

语法:操

作码:程序

计数器:

ROL Rd 0

≤ d ≤31 PCPC+ 1

例子:(实践操作程序

28.ROR——通过进位右循环

说明:寄存器Rd的所有位右移1位,C标志被移到Rd的第7位,Rd的

第0位移到C

标志。

操作:

语法:操作码:

程序计数器:

ROR Rd 0 ≤ d

≤31 PCPC+ 1 例子: (实践操作程序

29.置I/O寄存器的位

SBI——置I/O寄存器的位

说明:对I/O寄存器指定的位置位,该指令在低32个I/O寄存器内

操作,I/O寄存器地

址为0~31。

操作:I/O( P b)1

语法:操作码:程序计数器:

SBIP,b 0≤P≤31,0≤b≤7 PCPC+1 例子: out $1e,r0 ;(EEARL寄存器)←(R0)

sbi $1c,0 ;( EECR寄存器 0位)1

30.清I/O寄存器的位

CBI——清I/O寄存器的位

说明:清零I/O寄存器中的指定位,该指令用在寄存器最低的32个I /O寄存器上,I/O

寄存器地址为 0~31。

操作:I/O(P,b)0

语法:操作码:程序计数器: CBI P, b 0≤ P≤31, 0≤b≤7 PCPC十1 例子: cbi $18,7 ; I/O(PORTB寄存器的7位)0

31.置进位位

SEC一置位进位标志

说明:置位SREG(状态寄存器)中的进位标志(C)。

操作:C1

语法:操作码:程序计数器:

SEC N0ne PCPC+ 1

C:1

例子: sec ; C1

adc r0, r1 ;带进位位加

32.触发全局中断位

SEI——置位全局中断标志

说明:置位SREG(状态寄存器)中的全局中断标志(I)。

操作:I1

语法:操作码:程序计数器:

SEI None PCPC+ 1

I:1

例子: cli ; I0

in r13,$16 ;(r13)←(PINB寄存器数据)

set ; I1

33.禁止全局中断位

CLI——清零全局中断标志

说明:清除SREG(状态寄存器)中的全局中断标志(I)。

操作:I0

语法:操作码:程序计数器: CLI None PCPC+ 1

I:0

例子:(实践操作程序

34.看门狗复位

WDR——看门狗复位

说明:该指令复位看门狗定时器,在 WD预定比例器给出限定时间内必

须执行。参见看门狗定时器硬件部分。

应用:抗干扰;延时

操作: WD timer restart.

语法:操作码:程序计数器: WDR N0ne PC~PC+ 1 例子:(实践操作程序

1.请观看多媒体指令系统讲座

2.实际操作一次: 按对应程序操作实

践!

R单片机指令系统

第五章AVR单片机指令系统 计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。计算机只能识别和执行机器语言的指令。为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。 AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。 SL-DIY02-3开发实验器使用AT90S8535单片机,有118条指令, 而我们所做的11个实验程序仅用了34条指令, 我们重点讲这34条指令, 其余指令就可自学了。 AVR器件(指令速查表) 118条指令器件

1.不带进位加法 ADD一不带进位加 说明:两个寄存器不带进位C标志加,结果送目的寄存器Rd。 操作: RdRd+ Rr 语法:操作码:程序计数器: ADD Rd,Rr O≤d≤31,0≤r≤31 PCPC+1 例子:。(实践操作程序实践操作例子*.ASM,必须编译生成*.OBJ文件才可调试,如要修改*.ASM,必须修改文件属性,去掉*.ASM只读文件属性2.带进位加法 ADC-一带进位加 说明:两个寄存器和C标志的内容相加,结果送目的寄存器Rd。 操作: Rd←Rd+Rr+C 语法:操作码:程序计数器: ADC Rd,Rr 0≤d≤31,0≤r≤31 PC←PC+1 例子:(实践操作程序 3.减1指令 DEC一减1 说明:寄存器Rd的内容减1,结果送目的寄存器Rd中。 操作:RdRd-l 语法:操作码:程序计数器: DEC Rd 0≤d≤31 PCPC十1 例子:(实践操作程序 4.立即数比较 CPI——带立即数比较 说明:该指令完成寄存器Rd和常数的比较操作。寄存器的内容不改变。该指令后能 使用所有条件转移指令。 操作:Rd-K 语法:操作码:程序计数器: CPI Rd, K 16≤d≤31, 0≤ K≤255 PCPC + 1

关于习题二答案-单片机的指令系统

关于习题二答案-单片机的指令系统

1、执行下列3条指令后,30H单元的内容是( C )。 MOV R0,#30H MOV 40H,#0EH MOV @R0,40H A)40H B)30H C)0EH D)FFH 2、在堆栈中压入一个数据时(B)。 A)先压栈,再令SP+1 B)先令SP+1,再压栈 C)先压栈,再令SP-l D)先令SP-1,再压栈 3、在堆栈操作中,当进栈数据全部弹出后,这时的SP应指向 A 。 A)栈底单元 B)7FH

C)栈底单元地址加1 D)栈底单元地址减l 4、指令MOVC A,@A+PC源操作数的寻址方式是 D 。 A)寄存器寻址方式B)寄存器间接寻址方式 C)直接寻址方式D)变址寻址方式 5、ANL 20H,#30H指令中,源操作数的寻址方式是 A 。 A)立即寻址方式B)直接寻址方式 C)位寻址方式D)相对寻址方式 6、ANL C,/30H指令中,源操作数的寻址方式是 C 。

A)立即寻址方式 B)直接寻址方式 C)位寻址方式 D)相对寻址方式 7、Jz rel指令中,操作数rel的寻址方式是 D 。 A)立即寻址方式 B)直接寻址方式 C)位寻址方式 D)相对寻址方式 8、Jz rel指令中,是判断 A 中的内容是否为0。 A)A B) B C) C D)PC 9、MOVX A,@DPTR指令中源操作数的寻址方式是(B)

A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址 10、下面条指令将MCS-51的工作寄存器置成3区(B) A)MOV PSW,#13H (B)MOV PSW,#18H 11、MOV C,00H指令中源操作数的寻址方式是(A) A)位寻址B)直接寻址 C)立即寻址 D)寄存器寻址 1、8051单片机共有7 种寻址方式。访问外部数据存储器应采用寄存器间接寻址方式。 2、访问外部数据存储器应采用寄存器间接寻址方式;查表应使用变址寻址方式。 3、在8051单片机中,堆栈操作的指令有PUSH 和 POP两个。 4、在8051单片机中,子程序调用的指令有ACALL 和 LCALL两个。 5、CJNE指令都是 3字节字节指令。

AVR单片机指令系统

AVR单片机指令系统 计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。计算机只能识别和执行机器语言的指令。为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。 AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。 SL-DIY02-3开发实验器使用AT90S8535单片机,有118条指令, 而我们所做的11个实验程序仅用了34条指令, 我们重点讲这34条指令, 其余指令就可自学了。 AVR器件(指令速查表) 118条指令器件 AT90S2313/2323/2343/2333 ,AT90S4414/4433/4434/851 5,AT90S8534/8535算术和逻辑指令 BRCC k

C清零转 位指令和位测试指令ADD Rd,Rr 加法 BRSH k ≥转 SBI P,b 置位I/O位ADC Rd,Rr 带进位加

BRLO k 小于转(无符号) CBI P,b 清零I/O位◇ ADIW Rdl,K 加立即数 BRMI k 负数转移

LSL Rd 左移SUB Rd,Rr 减法 BRPL k 正数转移 LSR Rd 右移SUBI Rd,Rr

减立即数 BRGE k ≥转(带符号) ROL Rd 带进位左循环SBC Rd,Rr 带进位减 BRLT k 小于转(带符号)

ROR Rd 带进位右循环SBCI Rd,K 带C减立即数 BRHS k H置位转移 ASR Rd 算术右移◇ SBIW Rdl,K

MCS-51单片机指令系统

一、填空题 1、寻址是指( )。80C51单片机指令系统有7种寻址方式,分别是:( )。 2、访问内部RAM可以采用的两种寻址方式为:( )和( )。 3、MCS-51单片机指令的基本格式为:( )。 4、Rn代表( ),其中n的取值范围是( );Ri代表( ),其中i的取值范围是( )。@Ri的含义是( )。 5、在单片机指令中,30H和#30H的区别是( );R0和@ R0的区别是( );A←R1 和A←(R1) 的区别是( );DPTR和@DPTR的区别是( )。 6、汇编是指由( )“翻译”为( )的过程。 7、常用的伪指令有8条,试写出其中的5条( )、( )、( )、( )、( )。 8、LJMP指令的转移范围是(); AJMP指令的转移范围是(); SJMP指令的转移范围是()。 二、简答题 1、指出下列指令中的操作数的寻址方式。 (1)MOV R0,#30H (2)MOV A,30H (3)MOV A,@R0 (4)MOV @R0,A (5)MOVC A,@A+DPTR (6)CJNE A,#00H,30H (7)MOV C,30H (8)MUL AB (9)MOV DPTR,#1234H (10)POP ACC 2、80C51指令中,常用字符代表立即数或存储单元,试判断下列字符ABC的含义。(1)MOV A,#ABC (2)MOV A,ABC (3)MOV C,ABC (4)MOV DPTR,#ABC 3、若R0=11H,(11H)=22H,(33H)=44H,写出执行下列指令后的结果。 (1)MOV A,R0 (2)MOV A,@R0 (3)MOV A,33H (4)MOV A,#33H 4、若A=11H,(11H)=22H,B=44H,写出执行下列指令后的结果。 (1)MOV R1,A (2)MOV R3,11H (3)MOV R3,#11H (4)MOV R3,B 5、若A=11H,R0=33H,(22H)=66H,(33H)=44H,写出执行下列指令后的结果。 (1)MOV 40H,A (2)MOV 40H,R0 (3)MOV 40H,@R0 (4)MOV 40H,22H (5)MOV 40H,#22H 6、若A=11H,R0=33H,(22H)=66H,(33H)=44H,写出执行下列指令后的结果。 (1)MOV @R0,A (2)MOV @R0,22H (3)MOV @R0,#22H 7、若 A=11H,R0=33H,B=44H,(11H)=22H,(22H)=66H,(33H)=44H,分别写出执行下列指令后的结果。 (1)MOV A,R0 (2)MOV B,#55H (3)MOV 40H,@R0 (4)MOV 11H,22H (5)MOV @R0,22H 8、试将30H、R7、B、A、PSW、DPTR中的数据依次压入堆栈。并指出每次堆栈操作后,SP=?、(SP)=?设原SP=60H,当前工作寄存器区为0区,(30H)=11H,R7=22H,B=33H,A=44H,PSW=55H,DPTR=6677H。 9、若A=78H,R0=34H,(34H)=DCH,(56H)=ABH,求分别执行下列指令后A和Cy中的数据。 (1)ADD A,R0 (2)ADDC A,@R0 (3)ADD A,56H (4)ADD A,#56H

8051单片机指令系统

8051 单片机指令系统
难点

MCS-51 单片机的寻址方式 数据传送指令和算术运算指令的使用 位操作和控制转移类指令的使用
要求
掌握:

MCS-51 单片机的寻址方式 指令系统的基本格式 指令系统的操作功能
了解:

指令系统的基本格式 操作数的使用方法 指令系统的操作过程
2.7.1
MCS-51 单片机指令格式
计算机的指令系统是表征计算机性能的重要指标,每种计算机都有自己的指令系统. MCS—51 单片机的指令系统是一个具有 255 种代码的集合,绝大多数指令包含两个基本部 分:操作码和操作数.操作码表明指令要执行的操作的性质;操作数说明参与操作的数据或 数据所存放的地址. MCS—51 指令系统中所有程序指令是以机器语言形式表示,可分为单字节,双字节, 三字节 3 种格式. 用二进制编码表示的机器语言由于阅读困难, 且难以记忆. 因此在微机控制系统中采用 汇编语言指令来编写程序.本章介绍 MCS—51 指令系统就是以汇编语言来描述的.
表 1 汇编指令与指令代码
代码字节 单字节 单字节 双字节 三字节
指令代码 84 A3 7410 B440 rel
汇编指令 DIV AB INC DPTR MOV A,#10H CJNE A,#40H,LOOP
指令周期 四周期 双周期 单周期 双周期

一条汇编语言指令中最多包含 4 个区段,如下所示: 标号: 操作码 目的操作数,源源操作数 ;注释
标号与操作码之间": "隔开; 操作码与操作数之间用"空格"隔开; 目的操作数和源源操作数之间有", "分隔; 操作数与注释之间用"; "隔开. 标号是由用户定义的符号组成,必须用英文大写字母开始.标号可有可无,若一条指令 中有标号,标号代表该指令所存放的第一个字节存储单元的地址,故标号又称为符号地址, 在汇编时,把该地址赋值给标号. 操作码是指令的功能部分,不能缺省.MCS—51 指令系统中共有 42 种助记符,代表了 33 种不同的功能.例如 MOV 是数据传送的助记符. 操作数是指令要操作的数据信息.根据指令的不同功能,操作数的个数有 3,2,1 或没 有操作数.例如 MOV A,#20H,包含了两个操作数 A 和#20H,它们之间用","隔开. 注释可有可无, 加入注释主要为了便于阅读, 程序设计者对指令或程序段作简要的功能说明, 在阅读程序或调试程序时将会带来很多方便.
2.7.2
寻址方式
所谓寻址方式,通常是指某一个 CPU 指令系统中规定的寻找操作数所在地址的方式, 或者说通过什么的方式找到操作数.寻址方式的方便与快捷是衡量 CPU 性能的一个重要方 面,MCS—51 单片机有七种寻找方式.
1
立即数寻址
立即寻址方式是操作数包括在指令字节中,指令操作码后面字节的内容就是操作数本 身,其数值由程序员在编制程序时指定,以指令字节的形式存放在程序存储器中.立即数只 能作为源操作数,不能当作目的操作数. 例如: MOV A,#52H ;A←52H MOV DPTR,#5678H ;DPTR←5678H 立即寻址示意图如 1 所示.
图 1 立即寻址示意图

AT89C51单片机指令系统

第3章AT89C51单片机指令系统 难点 ?MCS-51单片机的寻址方式 ?数据传送指令和算术运算指令的使用 ?位操作和控制转移类指令的使用 要求 掌握: ?MCS-51单片机的寻址方式 ?指令系统的基本格式 ?指令系统的操作功能 了解: ?指令系统的基本格式 ?操作数的使用方法 ?指令系统的操作过程 3.1 MCS-51单片机指令格式 3.2 寻址方式 3.3 指令系统 3.1 MCS-51单片机指令格式 计算机的指令系统是表征计算机性能的重要指标,每种计算机都有自己的指令系统。MCS—51单片机的指令系统是一个具有255种代码的集合,绝大多数指令包含两个基本部分:操作码和操作数。操作码表明指令要执行的操作的性质;操作数说明参与操作的数据或数据所存放的地址。 MCS—51指令系统中所有程序指令是以机器语言形式表示,可分为单字节、双字节、三字节3种格式。 用二进制编码表示的机器语言由于阅读困难,且难以记忆。因此在微机控制系统中采用汇编语言指令来编写程序。本章介绍MCS—51指令系统就是以汇编语言来描述的。 表3-1汇编指令与指令代码 标号:操作码目的操作数,源源操作数;注释 标号与操作码之间“:”隔开; 操作码与操作数之间用“空格”隔开; 目的操作数和源源操作数之间有“,”分隔; 操作数与注释之间用“;”隔开。 标号是由用户定义的符号组成,必须用英文大写字母开始。标号可有可无,若一条指令中有标号,标号代表该指令所存放的第一个字节存储单元的地址,故标号又称为符号地址,在汇编时,把该地址赋值给标号。 操作码是指令的功能部分,不能缺省。MCS—51指令系统中共有42种助记符,代表了33种不同的功能。例如MOV是数据传送的助记符。

相关主题
文本预览
相关文档 最新文档