当前位置: 首页 > wzjs >正文

益阳网站制作公司地址构建一个网站的步骤

益阳网站制作公司地址,构建一个网站的步骤,网站建设 生产,电子商务网站首页设计目录 一、内部数据存储器(RAM)传送指令 1、以累加器 A 为目的操作数的指令 2、以寄存器 Rn 为目的操作数的指令 3、以直接地址为目的操作数的指令 二、外部数据存储器(RAM)传送指令 1、读外部数据存储器指令 2、写外部数据…

目录

一、内部数据存储器(RAM)传送指令

1、以累加器 A 为目的操作数的指令

2、以寄存器 Rn 为目的操作数的指令 

 3、以直接地址为目的操作数的指令

二、外部数据存储器(RAM)传送指令

1、读外部数据存储器指令

2、写外部数据存储器指令

三、程序存储器传送指令

四、数据交换指令

1、字节交换指令

2、半字节交换指令

五、堆栈操作指令

1、进栈指令

2、出栈指令


        单片中寻址是为了找到操作数,而各类指令则是为了对操作数进行操作。本篇文章将介绍51单片机中的第一类指令 —— 数据传送类指令。

        51 单片机的数据传送类指令是汇编语言编程里极为重要的一类指令,其主要功能是把数据从源地址传送到目的地址。下面将详细介绍常见的数据传送类指令。

一、内部数据存储器(RAM)传送指令

        这类指令的操作码都是mov,即move,意为移动。在此引申为传送

        mov 的指令格式是:mov 目的操作数 源操作数。源操作数可以是:A、Rn、@Ri、direct、#date;目的操作数可以是:A、Rn、@Ri、direct。

        它的作用是将源操作数的内容传送到目的操作数

1、以累加器 A 为目的操作数的指令

        这类指令会把源操作数传送到累加器 A 中。

MOV A, Rn      ; 将寄存器Rn中的数据传送到累加器A,n = 0 - 7
MOV A, direct  ; 将直接地址单元中的数据传送到累加器A
MOV A, @Ri     ; 将以Ri内容为地址的内部RAM单元中的数据传送到累加器A,i = 0, 1
MOV A, #data   ; 将立即数data传送到累加器A

示例:

MOV R0, #30H   ; 将立即数30H传送到寄存器R0
MOV A, R0      ; 将寄存器R0中的数据(30H)传送到累加器A
2、以寄存器 Rn 为目的操作数的指令 

        这类指令会把源操作数传送到寄存器Rn中。

MOV Rn, A      ; 将累加器A中的数据传送到寄存器Rn,n = 0 - 7
MOV Rn, direct ; 将直接地址单元中的数据传送到寄存器Rn
MOV Rn, #data  ; 将立即数data传送到寄存器Rn

示例:

MOV A, #20H    ; 将立即数20H传送到累加器A
MOV R1, A      ; 将累加器A中的数据(20H)传送到寄存器R1
 3、以直接地址为目的操作数的指令

        这类指令会把源操作数传送到直接地址单元中。

MOV direct, A      ; 将累加器A中的数据传送到直接地址单元
MOV direct, Rn     ; 将寄存器Rn中的数据传送到直接地址单元
MOV direct1, direct2 ; 将直接地址单元direct2中的数据传送到直接地址单元direct1
MOV direct, @Ri    ; 将以Ri内容为地址的内部RAM单元中的数据传送到直接地址单元
MOV direct, #data  ; 将立即数data传送到直接地址单元

示例:

MOV A, #40H    ; 将立即数40H传送到累加器A
MOV 30H, A     ; 将累加器A中的数据(40H)传送到内部RAM的30H单元

4、以间接地址为目的操作数的指令

         这类指令会把源操作数传送到以 Ri 内容为地址的内部 RAM 单元中。

MOV @Ri, A      ; 将累加器A中的数据传送到以Ri内容为地址的内部RAM单元
MOV @Ri, direct ; 将直接地址单元中的数据传送到以Ri内容为地址的内部RAM单元
MOV @Ri, #data  ; 将立即数data传送到以Ri内容为地址的内部RAM单元

示例:

MOV R0, #30H   ; 将立即数30H传送到寄存器R0
MOV A, #50H    ; 将立即数50H传送到累加器A
MOV @R0, A     ; 将累加器A中的数据(50H)传送到内部RAM的30H单元

二、外部数据存储器(RAM)传送指令

        MOVX表示访问的是片外RAM/I/O端口

        DPTR是指针,所以@DPTR表示寄存器间接寻址,DPTR 表示的是操作数的指针,通过这个指针找到数据;如果操作数直接是DPTR,并对其赋值,则指针DPTR指向的地址就是这个值。

        即对@DPTR操作,改变的是指针指向内存单元的数的大小对DPTR进行操作,改变的是指针的值,即其指向的地址

1、读外部数据存储器指令
MOVX A, @DPTR ; 将以DPTR内容为地址的外部RAM单元中的数据传送到累加器A
MOVX A, @Ri   ; 将以Ri内容为低8位地址(P0口输出),P2口输出高8位地址的外部RAM单元中的数据传送到累加器A

示例:

MOV DPTR, #1000H ; 将立即数1000H传送到数据指针DPTR
MOVX A, @DPTR    ; 将外部RAM的1000H单元中的数据传送到累加器A
2、写外部数据存储器指令
MOVX @DPTR, A ; 将累加器A中的数据传送到以DPTR内容为地址的外部RAM单元
MOVX @Ri, A   ; 将累加器A中的数据传送到以Ri内容为低8位地址(P0口输出),P2口输出高8位地址的外部RAM单元

示例:

MOV DPTR, #2000H ; 将立即数2000H传送到数据指针DPTR
MOV A, #60H      ; 将立即数60H传送到累加器A
MOVX @DPTR, A    ; 将累加器A中的数据(60H)传送到外部RAM的2000H单元

三、程序存储器传送指令

     这类指令用于读取程序存储器中的数据表格

MOVC A, @A+DPTR ; 将以A+DPTR内容为地址的程序存储器单元中的数据传送到累加器A
MOVC A, @A+PC   ; 将以A+PC内容为地址的程序存储器单元中的数据传送到累加器A

示例:

MOV DPTR, #TABLE ; 将表格首地址TABLE传送到数据指针DPTR
MOV A, #0        ; 将立即数0传送到累加器A
MOVC A, @A+DPTR  ; 将程序存储器中TABLE+0单元的数据传送到累加器A
TABLE: DB 10H, 20H, 30H ; 定义一个数据表格

四、数据交换指令

        XCH很简单,就是进行两个操作数之间的数据交换XCHD则是进行两个操作数之间,低4位的数据交换

1、字节交换指令
XCH A, Rn      ; 将累加器A中的数据与寄存器Rn中的数据交换
XCH A, direct  ; 将累加器A中的数据与直接地址单元中的数据交换
XCH A, @Ri     ; 将累加器A中的数据与以Ri内容为地址的内部RAM单元中的数据交换

示例:

MOV A, #70H    ; 将立即数70H传送到累加器A
MOV R2, #80H   ; 将立即数80H传送到寄存器R2
XCH A, R2      ; 交换累加器A和寄存器R2中的数据
2、半字节交换指令
XCHD A, @Ri    ; 将累加器A的低4位与以Ri内容为地址的内部RAM单元的低4位交换

示例:

MOV R0, #30H   ; 将立即数30H传送到寄存器R0
MOV A, #12H    ; 将立即数12H传送到累加器A
MOV @R0, #34H  ; 将立即数34H传送到内部RAM的30H单元
XCHD A, @R0    ; 交换累加器A和内部RAM 30H单元的低4位

五、堆栈操作指令

1、进栈指令

(1)指令格式:PUSH direct

(2)功能:先将堆栈指针 SP 的值加 1,然后把直接地址单元(direct)中的数据传送到 SP 所指向的堆栈单元中

(3)示例代码:

MOV SP, #60H   ; 设置堆栈指针SP为60H
MOV A, #90H    ; 将立即数90H传送到累加器A
PUSH ACC       ; 将累加器A中的数据压入堆栈

(4)代码解释

        ① MOV SP, #60H:将堆栈指针 SP 初始化为60H,意味着堆栈从60H地址开始。

        ② MOV A, #90H:把立即数90H传送到累加器 A。

        ③ PUSH ACC:执行进栈操作,先将 SP 的值加 1,变为61H,然后将累加器 A 中的90H传送到61H单元。

2、出栈指令

(1)指令格式:POP direct

(2)功能:先把 SP 所指向的堆栈单元中的数据传送到直接地址单元(direct)中,然后将堆栈指针 SP 的值减 1

(3)示例代码:(需结合进栈指令的代码)

POP ACC       ; 将堆栈顶部的数据弹出到累加器A

(4)代码解释

        假设执行此指令前,SP 指向61H单元,且该单元存储的数据为90H。执行POP ACC后,会将61H单元中的90H传送到累加器 A,然后 SP 的值减 1,变为60H。

http://www.dtcms.com/wzjs/605000.html

相关文章:

  • 雷州手机网站建设电子商务网站软件建设核心
  • 做网站怎么插音乐循环广东的网站备案
  • 辽宁网站建设企业定制公司永久免费linux服务器下载
  • 沧州国外网站建设织梦如何做汽车贸易网站
  • 宁津 做网站建自己的网站做外贸
  • 开发网站培训班厦门网站建设推广
  • 计算机学习网站内蒙古自治区建设厅网站首页
  • asp 网站开发教程龙岩设计师
  • 汝阳网站建设荷兰网站域名
  • 网站繁体js公司管理系统网站
  • 滁州网站建设联系方式最近几天新闻大事
  • 做国外网站的站长微软哪个软件做网站
  • 重庆seo整站优化系统网页设计尺寸标注
  • 义乌公司网站wordpress 文章文件夹
  • 做传奇网站怎么弄怎么让网站被搜索到
  • 株洲做网站优化培训网站建设
  • 广州建设高端网站网站做友情链接的用途
  • 网站超链接的优化公司企业做网站怎么做
  • 重庆网站建设子沃科技熊掌号汽车网站策划书
  • 做外贸网站如果是东西杂会不会不好推广大连网站设计公司排名
  • 梦扬科技 合肥网站建设app开发费用报价表
  • 延庆县专业网站制作网站建设房地产网
  • 做资源的教育类网站或公司mvc5 网站开发之美 pdf
  • 做网站一个月能赚多少钱电子商务网站建设基本组成
  • 网站域名备案服务广州网站开发公司有哪些
  • 西安网站模板建站柳州 网站建设
  • 网站制作需要多长时间网站首页轮播
  • 一个专门做网站建设的公司wordpress 数据库 utf8
  • 三亚建设网站中国合同网官网
  • gta5线下买房网站建设大数据网站建设和