个性化阅读
专注于IT技术分析

8051指令集

本文概述

指令是给微控制器的命令, 用于对显示的数据执行指定的操作。微控制器的指令集是微控制器旨在执行的指令的集合。


数据移动或处理说明

助记符 操作说明 寻址方式 使用的循环数 占用字节数
乐章啊, 是否# 该指令将立即数复制到acc immediate 1 2
Mov Rx, a 该指令将数据从acc复制到Rx register 1 1
Mov a, Rx 该指令将数据从Rx复制到acc register 1 1
乐章的Rx, 是否# 该指令将立即数num复制到Rx中 immediate 1 2
移动a, 添加 该指令将数据从直接地址位置复制到acc direct 1 2
Mov add, a 该指令将数据从acc复制到直接地址添加 direct 1 2
Mov add, #num 该指令将立即数num复制到直接地址 direct 2 3
Mov add1, add2 该指令将数据从add2复制到add1 direct 2 3
Mov Rx, 添加 该指令从直接复制数据 direct 2 2
Mov add, Rx 该指令将数据从Rx复制到直接地址添加 direct 2 2
Mov @ Rp, a 该指令将acc中的数据复制到Rp中的地址 Indirect 1 2
Mov a, @ Rp 该指令将Rp中地址处的数据复制到acc Indirect 1 1
Mov添加, @ Rp 该指令复制Rp地址中的数据以添加 Indirect 2 2
Mov @ Rp, 添加 该指令将添加数据复制到Rp中的地址 Indirect 2 2
Mov @ Rp。#Num 该指令将立即数num复制到Rp中的地址 Indirect 1 2
Movx A, @ Rp 该指令将Rp中外部add的内容复制到acc Indirect 2 1
Movx a, @ DPTR 该指令将DPTR中外部add的内容复制到acc Indirect 2 1
Movx @ Rp 该指令将acc的内容复制到Rp中的外部add Indirect 2 1
Movx @ DPTR, a 该指令将acc的内容复制到DPTR中的外部add Indirect 2 1
Movc a, @ a + DPTR 通过添加acc和DPTR形成指令的地址, 并将其内容复制到acc indirect 2 1
Movc a, @ a + PC 通过添加acc和PC形成指令的地址, 并将其内容复制到acc indirect 2 1
推送添加 In this instruction Increment Stack Pointer (SP) and copy the data from source add to internal RAM address contained in SP Direct 2 2
弹出添加 该指令将数据从SP中包含的内部RAM地址复制到目标添加和减少SP direct 2 2
Xch A, Rx 该指令在acc和Rx之间交换数据 Register 1 1
Xch a, 添加 该指令在acc和给定的add之间交换数据 Direct 1 2
Xch A, @ Rp 该指令在acc和Rp中的地址之间交换数据 Indirect 1 1
Xchd A, @ Rp 该指令仅交换Rp中的acc和地址的低半字节 indirect 1 1

循环和跳转指令

8051中的循环操作:

在重复执行一系列指令时, 将导致循环的形成。根据需要, 循环操作用于在程序内运行同一组子例程多次。

考虑指令DJNZ寄存器;标签用于执行循环操作。在该指令中, 寄存器减1;否则, 寄存器减1。如果它不为零, 则8051跳转到标签所引用的目标地址。

示例:使用重复加法的技术将15乘以10

解决方案:可以通过重复乘以被乘数(与乘数一样多)来执行乘法。

例如:

ES 8085微控制器
ES 8085微控制器
MOV A, #0             ;A = 0, clean ACC 
MOV R1, #10          ; the multiplier is replaced in R1 
Add A, #15              ;add the multiplicand to the ACC 
	
AGAIN: DJNZ R1, AGAIN: repeat  until R1 = 0 (10 times) 

   MOV R5 , A           ;save A in R5 ;R5 (96H)

条件跳转指令:

考虑下表列出了8051中使用的条件跳转指令

使用说明 行动
JC 如果CY = 1则跳转
JNC 如果CY≠1则跳转
JNB 如果位= 0则跳转
JB 如果位= 1则跳转
JZ 如果A = 0则跳转
DJNZ 如果寄存器≠0, 则递减并跳转
JNZ 如果A≠0则跳转
CJNE A, 数据 如果A≠数据则跳转
CJNE reg, #data 如果字节≠数据则跳转
JBC 如果位= 1则跳转并清除位
赞(1)
未经允许不得转载:srcmini » 8051指令集

评论 抢沙发

评论前必须登录!