【单片机学习笔记】---- 04语言与指令

1 语言

1.1 汇编语言

汇编语言是能够利用单片机所有特性直接控制硬件的唯一程序,直接使用CPU的指令系统和寻址方式,从而得到占用空间小,执行速度快的高质量程序。对于一些直接控制硬件的场合,汇编语言是必不可少的。

汇编语言不是一种结构化的程序设计语言,对于复杂的单片机应用系统,编写效率很低

1.2 机器语言

机器语言是计算机唯一能识别的语言,用汇编语言或高级语言编写的程序(源程序)最终都必须翻译成机器语言的程序(目标程序),计算机才能够识别


2 指令

2.1 指令的概念

指令是指挥计算机执行某种操作的命令

一条指令可以用两种语言形式表达,即机器语言指令汇编语言指令

  • 机器语言指令用二进制代码表示,称指令码,又称机器码,计算机能够直接识别并加以分析和执行

  • 汇编语言指令助记符表示,便于程序员编写和阅读,但不能为计算机识别和执行,必须翻译成机器语言指令

把汇编语言编写的源程序翻译成机器语言指令的过程称为汇编

2.2 80C51常见指令助记符

2.2.1 数据传送类

  • MOV:move;对内部RAM和特殊功能寄存器SFR的数据进行传送

  • MOVC:move code;读取程序存储器数据表格的数据传送

  • MOVX:move external RAM;对外部RAM的数据传送

  • XCH:exchange;字节交换

  • XCHD:exchange low-order digit;低半字节交换

  • PUSH:push into stack;入栈

  • POP:pop from stack;出栈

2.2.2 算数运算类

  • ADD:addition;加法

  • ADDC:add with carry;带进位加法

  • SUBB:subtract with borrow;带借位减法

  • DA:decimal adjust;十进制调整

  • INC:increment;加1

  • DEC:decrement;减1

  • MUL:multiplication;乘法

  • DIV:division;除法

2.2.3 逻辑运算类

  • ANL:and logic:

  • ORL:or logic;

  • XRL:exclusive-or logic;异或

  • CLR:clear;清零

  • CPL:complement;取反

  • RL:rotate left;循环左移

  • RLC:rotate left through the carry flag;带进位循环左移

  • RR:rotate right;循环右移

  • RRC:rotate right through the carry flag;带进位循环右移

  • SWAP:swap;低四位与高四位交换

2.2.4 控制转移类

  • ACALL:absolute subroutine call;子程序绝对调用

  • LCALL:long subroutine call;子程序长调用

  • RET:return from subroutine;子程序返回

  • RETI:return from interruption;中断返回

  • AJMP:absolute jump;绝对转移

  • LJMP:long jump;长转移

  • SJMP:short jump;短转移

  • JMP:jump;转移

  • CJNE:compare jump if not equal;比较不相等则转移

  • DJNZ:decrement jump if not zero;减1后不为0则转移

  • JZ:jump if zero;结果为0则转移

  • JNZ:jump if not zero;结果不为0则转移

  • JC:jump if the carry flag is set;有进位则转移

  • JNC:jump if not carry;无进位则位移

  • JB:jump if the bit is set;位为1则位移

  • JNB:jump if the bit is not set;位为0则位移

  • JBC:jump if the bit is set and clear the bit;位为1则位移,且清除该位

  • NOP:no operation;空操作

2.2.5 位操作指令

  • SETB:set bit;位置1

2.3 指令系统中的特殊符号

  • Rn:当前选中的寄存器区的8个工作寄存器R0~R7

  • Ri:当前选中的寄存器区中可作为地址寄存器的两个寄存器R0或R1

  • Direct:内部数据存储单元的8位地址,包含0~127内部存储单元地址和128~255部分存储单元特殊功能寄存器地址

  • #data:指令中的8位常数

  • #data16:指令中的16位常数

  • @:间接寄存器寻址或基址寄存器的前缀

  • /:位操作的前缀,声明对该为取反

  • DPTR:数据指针

  • Bit:内部RAM和特殊功能寄存器的直接寻址位

  • A:累加器

  • B:特殊功能寄存器B,用于乘法和除法指令中

  • C:进位标志位

  • (X):某地址单元的内容

  • ((X)):由(X)寻址的单元的内容

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Embedded Boy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值