【HC89S003F4开发板】 10汇编指令

HC89S003F4开发板汇编指令

一、数据传递类指令

MOV、MOVC、MOVX

  • 1、MOV,用于片内数据存储器中的数据传递指令中。
  • 2、MOVC是与ROM之间的数据传送,而MOVX是与外部RAM数据传送;
  • 3、MOV就是移动的意思,C就是Code,代码的意思,X就是eXternal,外部的意思 MOVC就是读代码存储器,MOVX就是读写外部存储器,即外部RAM ;
  • 4、MOVC是读取ROM中的数据,只能读不能写(一般来说主要是用来读取常量或常量表) MOVX是读写外部扩展的RAM和扩展的IO口,可以读也可以写。
MOVX A,@RI
MOVX @RI,A
MOVX A,@DPTR
MOVX @DPTR, A
MOVC A,@A+DPTR

PUSH、POP

进出栈,栈是FILO(first in last out),先进后出
也就是把寄存器里的数据临时保存一下,相当与一个仓库。

需要注意,使用命令时,确认栈的位置,保证不溢出、不覆盖变量。

XCH、XCHD

XCH 交换双方的全部 8 位数。

XCHD 交换双方的低 4 位数。

二、算术运算类指令

INC、DEC、MUL、DIV

inc a 相当于 add a,1

dec a 相当于 sub a,1

优点 速度比sub或add指令快,占用空间小

这条指令执行结果影响AF、OF、PF、SF、ZF标志位,但不影响CF进位标志位。

mul 累加器ACC*寄存器b,保存在ACC

DIV 累加器ACC/寄存器b,保存在ACC

在c库里还有16位乘除的方法

EXTRN   CODE (?C?IMUL) ;公式R4R5*R6R7,保存在R6R7,调库16字节
EXTRN   CODE (?C?UIDIV) ;无符号,公式R4R5/R6R7,商保存在R6R7,余数在R4R5
EXTRN   CODE (?C?SIDIV) ;有符号,公式R4R5/R6R7,商保存在R6R7,余数在R4R5
LCALL   ?C?IMUL ;跳转3字节

ADD、ADDC、SUBB

ADD A, R0 相当于A=A+R0

ADDC A, R0 相当于A=A+R0+Cy

SUBB A, R0 相当于A=A-R0-Cy,如果A小于R0,则Cy置位

三、逻辑运算类指令

ANL、ORL、XRL

与、或、异或

RL、RLC、RR、RRC

RL左移,RR右移,C带进/借位

SWAP

高四位和低四位交换

四、控制转移类指令

SJMP、AJMP、LJMP

无条件转移

SJMP -126—+129范围内转移

AJMP 2k范围内转移

LJMP 64K范围内转移

RET、RETI

RETI 是中断返回指令 

RET 是子程序返回指令

ACALL、LCALL

转移到子程序,子程序执行后配合RET、RETI返回

CJNE、DJNZ、JNZ、JZ

CJNE 比较两值,不相等转移

DJNZ 减 1,不为 0 则转移

JNZ Jump if Not Zero 累加器为 1 则转移

JZ Jump if Zero 累加器为 0 则转移

五、布尔指令

JC、JNC、JB、JNB、JBC

JC Jump if Cy (有进位、即Cy=1,则跳转)

JNC Jump if Not Cy (有进位、即Cy=0,则跳转)

JBC Jump if Bit and Clear

JB Jump if Bit (为1则跳转)

JNB Jump if Not Bit (为0于则跳转)

原文地址:https://www.cnblogs.com/yywBlogW/p/11402991.html

时间: 2024-11-09 04:58:06

【HC89S003F4开发板】 10汇编指令的相关文章

【HC89S003F4开发板】 6crc校验

HC89S003F4开发板crc校验 前言 第一次用有带crc的mcu 使用资料自带的demo @实现效果 通过PC向MCU发送5个8位数据,MCU返回CRC校验值 void main() { /************************************系统初始化****************************************/ WDTCCR = 0x00; //关闭看门狗 //本例程为方便测试关闭看门狗,实际使用中,建议客户打开看门狗,详见WDT复位例程 CLKS

【HC89S003F4开发板】 4端口消抖

HC89S003F4开发板端口消抖 一.前言 看到资料里有中断消抖的例子,因为以前项目里有遇到高频干扰频繁退出休眠的情况,所以好奇用这个配置能不能解决. 二.对demo进行修改 @实现效果 P01设置为下降沿中断,每进一次中断后唤醒掉电模式,LED1状态改变一次 void main() { /************************************系统初始化****************************************/ WDTCCR = 0x00; //关闭看

【HC89S003F4开发板】 2调度器

HC89S003F4开发板调度器调试 一.前言 逛论坛看到有人给HC89做了调度器,调度部分直接操作堆栈的. 下载链接 下载下来调试看看. 二.用户代码 @实现效果 编译后led灯闪烁 #include "HC51SRTOS.h" #include "math.h" //#define LED_RED P0_0 // 将P20设置为绿灯 sbit LED_RED = P0^0; sbit LED_GREEN = P0^1; /******************定义

【HC89S003F4开发板】9ASM写定时器1

HC89S003F4开发板ASM写定时器1 一.实现过程 1.外部寄存器设置 扩展 XSFR 采用和 XRAM 同样的访问方式,使用 MOVX A, @DPTR 和 MOVX @DPTR ,A 来进行读写. WDTCCR EQU 0FEA0H CLR A MOV DPTR,#WDTCCR MOVX @DPTR,A ; 关闭看门狗 2.设置定时器1 定时器计算方法 公式: 65536 - ((1/1000) / (1/(Fosc / Timer分频系数))) Fosc=16000000,Timer

iTOP-4412开发板10.1寸[金属框]屏幕硬件修改支持排线和HDMI

注:iTOP-4412开发板(精英版和全能版)同时也有10.1寸屏幕,如果 金属框10.1寸屏幕(如下图所示)转接板使用的默认焊接方式 则默认只能使用HDMI线, 不能支持FPC排线. 本文档介绍,如何修改转接板背面的配置电阻,在iTOP-4412底板上同时支持HDMI和 FPC线. 如下图所示,是 10.1 寸屏幕的配置电阻原理图部分截图. 如下图所示,这是 PCB 截图,左边的一排电阻是 4412 的配置,右边的一排电阻是其它 开发板的配置. 如下图所示,如果焊接椭圆框中的电阻,iTOP-4

【4412嵌入式开发板学习笔记】认识uboot

转自迅为讨论群:http://www.topeetboard.com 重要说明:这份笔记不是4412开发配套的,是我在网上看视频的时候下载上课老师的笔记后修改的.所以我试了一下笔记上的uboot命令,有些无法使用,可能是uboot版本问题或者文件系统问题.具体原因我目前还不是很清楚,建议第五部分uboot命令可以先不用尝试. 一切以配套视频为准. 一.为什么是uboot 1.uboot从哪里来的? (1)uboot是SourceForge上的开源项目 (2)uboot项目的作者:一个德国人最早发

ESP-EYE V2.1 开发板 WINDOWS 10下上手过程

准备工作 1 × ESP-EYE V2.1 开发板 1 × Micro USB B 电缆 1 × PC(Windows10) 简介 ESP-EYE 是一款面向人脸识别和语音识别市场的开发板,搭载 ESP32 芯片.200 W 像素摄像头.数字麦克风.8 MB PSRAM 和 4 MB Flash,可满足各种 AI 应用开发需求.此外,该开发板还支持 Wi-Fi 图像传输.Micro USB 调试和供电,可以实现语音唤醒.人脸检测与识别等功能,可协助用户开发高度集成的 AI 解决方案. 硬件组成

移植u-boot-2015.10到JZ2440开发板(五)——设置nand分区,环境变量保存地址和其它默认参数

在下载内核或文件系统时,我们可以直接在命令中写明烧到nandflash的具体地址,但较麻烦,我们可以给nandflash分区,这样就可直接写烧到那个分区就行了,较为方便.如何设置呢?首先我们在uboot中输入mtdparts命令,看看默认的分区,结果提示mtdids not defined, no default present.搜索"mtdids not defined",定位到common/cmd_mtdparts.c的mtdparts_init函数中,分析发现是mtdids_de

友坚4412开发板怎样在source insight中使汇编代码高亮显示?

友坚4412开发板怎样在source insight中使汇编代码高亮显示?4412开发板 做ARM嵌入式开发时,有时得整汇编代码,但在SIS里建立PROJECT并ADD TREE的时候,根据默认设置并不会把该TREE里面所有汇编文件都包含进来,默认只加了.inc和.asm后缀的, .s后缀的没有.而且用SIS打开.s的文件时,一片黑白没有色彩, 感觉回到DOS的EDIT时代里了. 解决方法是在Options->Document Options里面,点左上的Document Type下拉菜单,选择