Python微信订餐小程序课程视频

https://blog.csdn.net/m0_56069948/article/details/122285951

Python实战量化交易理财系统

https://blog.csdn.net/m0_56069948/article/details/122285941

重温51汇编指令(附实验)

写在前面:

在电子控制的课上,老师带我们重温了一些51的汇编指令,有了一些新的思考,感觉非常的有趣,所以这里进行总结和尝试。

正文:

实验平台:

keil5

实验目标MCU:

intel的80C51BH

51寄存器的简单介绍:

通过debug窗口可以进行观察

符号以及寄存器意义:

1、r0~r7寄存器组的八个工作寄存器
2、a是累加器,用于运算以及存放数据
3、b是专用寄存器,用于MUL(乘法)、DIV(除法)存放第二操作数、乘积的高位字节、除法余数等。
4、psw属于程序状态字


4.1 p是奇偶标志位

p=1则累加器a中1的个数为奇数;p=0则累加器a中1的个数为偶数。


4.2 ov是溢出标志位,ov=0没有溢出;ov=1溢出


这里进行完ab的乘法运算很显然是溢出了,高8位放到了b中,低8位放在了a里。

4.3 rs是当前寄存器选择位,就是说选择不同的寄存器组。

4.4 f0用户标志位,用户可用软件自定义的一个标志位。

4.5 cy进位标志位,存放算术运算的进位标志,布尔运算中作累加位使用。



执行add指令之前,a是80H,r4是8aH,相加应该是10aH(都是16进制)。


执行完add指令之后,a变成了0aH,进位标志位cy变成了1。

ac辅助进位标志位,做BCD运算时,低四位向高四位进位或错位时,置1。

5、sp栈指针寄存器

默认sp的值位0x07,在执行堆栈操作、程序调用、子程序返回以及中断返回等指令时,sp的值自动+1或-1

6、dptr数据指针寄存器
7、pc程序计数器

程序执行到什么位置了


states没有查到专门解释,我觉的可能是指令执行的数目,因为没执行一条指令会+1,但有时候执行复杂一点的指令,会+3或者+4。

sec这个也没有查到,我感觉应该和时间有关。

汇编指令:

每一种MCU都有自己独特的汇编指令,有相似的地方,但也有很大的不同。所以汇编语言可移植性很不好,但胜在简单高效。

指令格式

[标号]:操作码 [目的操作数],[源操作数] ; [注释]

指令分类

  • 数据传送指令 29条

    • 把源地址中的操作数传送到目的地址(寄存器)中
  • 算术运算指令 24条

    • 加减乘除等,第一操作数放在累加器A中,第二操作数放在某个寄存器或者片内RAM中,运算结果会保存在A中,因为运算产的进位标志、奇偶标志和溢出标志等保存在PSW中。
  • 逻辑运算操作指令 24条

    • 逻辑操作与循环移位两类指令
    • 逻辑运算:逻辑乘、逻辑加、逻辑取反、异或等。
    • 也是先把一个操作数放在A中,执行结果也放在A中
  • 位操作指令 17条

  • 控制转移指令 17条

寻址方式

  • 直接寻址

    • MOV A,36H把内部RAM 36H中的数据放在累加器A中
  • 立即寻址

    • MOV A,#20H操作数前加‘#’号就是立即数,不加就是直接地址
  • 寄存器寻址

    • MOV A,R0把当前R6中的内容送到累加器A中
  • 间接寻址

    • MOV R0,#40H
    • MOV A,@R0

数据传送类指令

MOV内部数据传送指令


MOVC程序存储器读指令


MOVX外部数据传送指令

XCH整字节交换指令

XCHD半字节交换指令

算术运算类指令

ADD不带进位的加法指令

ADDC带进位的加法指令

  • 一开始给累加器a=0ach,再向累加器a中加98h,1010 1100 +1001 1000=1 0100 0101
  • 会出现进位,所以这个时候进位标志位cy为1,辅助进位标志位ac为1,溢出标志位ov为1

INC加1指令


SUBB减法指令

DEC减一指令


DA十进制调整指令


68+89=157 结果a=57 进位标志位cy=1,这就是BCD加法程序

MUL乘法指令

注意乘积,高八位再b中,低八位在a中


DIV除法指令

逻辑运算指令

  • ANL与
  • ORL或
  • XRL异或
  • CLR清零

移位指令

  • RL累加器左环移
  • RR累加器右环移
  • RLC累加器带进位左环移
  • RRC累加器带进位右环移

控制转移类指令

  • LJMP长转移指令
  • AJMP绝对转移指令
  • SJMP短转移指令
  • JMP间接转移指令
  • JZ条件转移指令(a=0)
  • JNZ条件转移指令(a不等于0)
  • CJNE比较转移指令
  • DJNZ减一条件转移指令
  • LCALL调用指令(长)
  • ACALL绝对调用指令
  • RET返回指令(子程序)
  • RETI返回指令(中断服务程序)

写在最后:

最后,希望上海疫情早点过去,我不想我的学生生活天天呆在宿舍里。/(ㄒoㄒ)/~~

祝大家早安、午安和晚安

重温51汇编指令(附实验)相关推荐

  1. 安卓逆向:重温Thumb汇编指令细节

    主要内容 1.Thumb指令集详解 2.Thumb直接访问的寄存器 3.Thumb指令集组成部分详解 4.Thumb和arm状态却换 5.Thumb的常见应用场景 1.Thumb指令集详解 •ARM处 ...

  2. 汇编语言——用DOSBox的debug查看CPU和内存 用机器指令和汇编指令编程

    实验一 查看CPU和内存,用机器指令和汇编指令编程   实验目的 了解什么是Debug,以及Debug中需要用的一些功能 R:查看.改变CPU寄存器的内容 D:查看内存中的内容 E:改写内存中的内容 ...

  3. 实验1 查看CPU和内存、用机器指令和汇编指令编程

     实验任务 一.使用Debug,用E命令和A命令以两种方式将指令写入内存 机器码        汇编指令 b8 20 4e     mov ax,4E20H 05 16 14     add ax,1 ...

  4. 汇编语言:实验一 查看CPU和内存,用汇编指令和机器指令编程

    Debug的使用: Debug 是DOS和Windows 实模式 (8086方式)的调试器,可以查看修改寄存器内容以及内存内容,机器码级别 Debug命令: 1)R命令:显示或修改寄存器内容 -r 显 ...

  5. 实验二:用机器指令和汇编指令编程

    实验任务(1) 1.使用 e 命令修改 0021:0~0021:f 数据,及修改后查看是否正确写入的操作 修改数据并查看 2.使用 a 命令输入的 p74 指令 输入汇编指令 3.每一行指令单步调试 ...

  6. [汇编语言]实验一:查看CPU和内存,用机器指令和汇编指令编程。

    实验一 实验任务: 查看CPU和内存,用机器指令和汇编指令编程. 实验内容: (1)实验代码: 开始执行命令: (2)实验代码: (3)实验代码: 找到了,日期为:01/01/92,这个是虚拟机dos ...

  7. 【实验报告】微处理器原理与应用 CPUHomework1.2 上篇【掌握DEBUG基本命令及其功能 查看CPU和内存 用机器指令和汇编指令编程】

    实验报告 课程名称:微处理器原理与应用 实验名称:CPUHomework1.2 掌握 DEBUG 基本命令及其功能 文章目录 实验报告 [实验目的] [实验要求] 上篇[查看CPU和内存,用机器指令和 ...

  8. 51单片机如何跳出wile循环_51单片机(九)汇编指令

    1 往期链接 Chenglin Li:51单片机(一)Visual Basic串口通信程序 Chenglin Li:51单片机(二)汇编语言设计流水灯 Chenglin Li:51单片机(三)汇编语言 ...

  9. 51单片机汇编指令记忆方法

    虽然现在51单片机一般是用的C语言编程,但是记得当时大学教材还是教的汇编. 本文总结下51单片机的汇编指令,权当是参考,感兴趣的可以了解一下. 学习单片机,除了搞清单片机内部功能.存储空间分配及I/O ...

  10. 传统 51 与STC-Y5内核 51 单片机对比汇编指令

    传统 51 与STC-Y5内核 51 单片机对比&汇编指令 算术类指令 24 汇编助记符 功能说明 字节数 传统8051单片机所需时钟 STC 8051单片机所需时钟 ADD A,Rn 寄存器 ...

最新文章

  1. Bootstrap4.x 新增
  2. AI模型加速进入万亿级时代,中国AI算力独占全球三成
  3. [POJ 1222] EXTENDED LIGHTS OUT
  4. SAP 电商云 Spartacus UI Proxy Facade 的一个实际例子
  5. 花51万请明星和网红带货仅卖5000元,法院这样判了...
  6. PYTORCH 定义模型
  7. 【扯淡】今天看了《写给失眠者的心理学》,下面开始借鉴与脑洞大开
  8. win server 2008 r2设置teamviewer13无人值守和开机自启动
  9. Ubuntu 16.04下Linux驱动编写第一步
  10. QQ自动登录 发消息给某人C++/C
  11. Spring 多线程下注入 bean 问题详解
  12. 南阳oj-----找球号(一)(set)
  13. Prometheus 和 Alertmanager实战配置
  14. JSP电子病历管理系统
  15. 济南2017年春考计算机考试试题,2017年山东省春季高考机械试题.pdf
  16. python生成excel文件报扩展名错误_在python中打开扩展名为.xls的文本文件时出错
  17. QGraphicsObject Error: Class declarations lacks Q_OBJECT macro.
  18. 基于MATLAB的数字水印系统研究
  19. 0基础学c语言txt下载,0基础学C语言.doc
  20. MIPI换EDP芯片-LT8911EXB芯片,商显行业新选择

热门文章

  1. 《异度神剑2》与柏拉图的精神世界略考(上)
  2. 用Python做一个自动发送邮件的工具
  3. idea文件夹代颜色代表的含义
  4. LVS负载均衡群集(理论+实验)
  5. 大数据背后的无奈与焦虑:“128元连衣裙”划分矮穷挫与白富美?
  6. 他是程序员出身,如今身价上亿!一人干出了美国版的:携程、安居客、看准网!...
  7. java影视app对接cms,原生影视App双端对接飞飞CMS
  8. 【清晖诗社】“立秋” 诗意浓,佳作有奖征集ing!
  9. linux压缩文件命令_Linux 系统压缩和解压 zip 格式文件
  10. qq服务器传输文件,QQ离线传文件功能简介