本节书摘来异步社区《例说8051:单片机程序设计案例教程》一书中的第2章,第2.5节,作者:张义和,陈敌北,更多章节内容可以访问云栖社区“异步社区”公众号查看

2-5 寻址方式

例说8051:单片机程序设计案例教程
所谓“寻址”,简单地讲,就是找到操作数地址的方法。8051提供5种寻址方式,说明如下。

圓 直接寻址
直接寻址(direct addressing)是直接在操作数字段里,指定操作数所在位置的地址,包括特殊功能寄存器(如P1、P2、PSW等),例如:

ADD A, 40H```
将存储器40H地址的内容加到ACC里。又如:

MOV 30H, A`
将ACC的内容复制到存储器30H地址里。

圓 间接寻址
间接寻址(indirect addressing)是利用间接寄存器(Index Register,R1或R0,标示为R_i)、基址寄存器(SP或DPTR)间接指示操作数所在位置的地址,而在间接寄存器或基址寄存器之左要加上“@”符号,例如:

INC  @R0```
以R0的内容为地址,将存储器该地址的内容加1。又如:

MOVX @DPTR, A`
以DPTR的内容为地址,将ACC的内容复制到外部存储器该地址里。

圓 寄存器寻址
寄存器寻址(Register addressing)是以寄存器(即R0到R7)的内容为操作数,例如:

ANL  A, R5```
将R5的内容与ACC的内容进行AND运算,其结果放入ACC里。又如:

DJNZ R7, LOOP`
将R7的内容减1,若其结果不等于0,则跳到LOOP处;若其结果等于0,则执行下一条指令。

圓 立即寻址
立即寻址(immediate addressing)是直接在操作数字段里放置操作数,而在操作数左边必须放置一个“#”符号,例如:

ORL A, #0FH```
将0FH与ACC的内容进行OR运算,其结果放入ACC里。又如:

CJNE A, #10, LOOP`
若ACC的内容不等于10,则跳到LOOP处;若ACC的内容等于10,则执行下一条指令。

圓 变址寻址
变址寻址(index addressing)与间接寻址有点类似,不过,变址寻址同时使用变址寄存器与基址寄存器,使用ACC作为变址寄存器,以存储偏移(offset)、PC或DPTR为基址寄存器。将基址与偏移相加后,才是操作数所在位置的地址,例如:

MOVC A, @A+PC```
先将PC的内容与ACC的内容相加,以其结果为地址,再将该地址的内容复制到ACC里。又如:

JMP @A+DPTR`
先将DPTR的内容与ACC的内容相加,以结果为地址,再跳到该地址。

《例说8051:单片机程序设计案例教程》——2-5 寻址方式相关推荐

  1. 《例说8051:单片机程序设计案例教程》——2-4 指令格式

    本节书摘来异步社区<例说8051:单片机程序设计案例教程>一书中的第2章,第2.4节,作者:张义和,陈敌北,更多章节内容可以访问云栖社区"异步社区"公众号查看 2-4 ...

  2. 《例说8051:单片机程序设计案例教程》——第 2 章 输出口的应用

    本节书摘来异步社区<例说8051:单片机程序设计案例教程>一书中的第2章,作者:张义和,陈敌北,更多章节内容可以访问云栖社区"异步社区"公众号查看 第 2 章 输出口的 ...

  3. c语言实验5上机刘若慧2017年,《《 C语言程序设计案例教程》》.ppt

    << C语言程序设计案例教程>>.ppt 课堂练习: 7.求三个整数之和: 1 只用main函数 2 用求两个整数之和的函数实现 main int a, b, c, sum; ...

  4. 《基于 DirectX11 的 3D 图形程序设计案例教程》学习四 D3DTriangle

    源程序:   此次例子的大部分代码均拷贝自上一章 InitD3D 例子程序.   d3dUtility.h /********************************************* ...

  5. c语言教程的辅导书,清华大学出版社-图书详情-《C语言程序设计案例教程学习辅导》...

    01C语言是国内广泛使用的计算机语言,是很多高等学校计算机及相关专业的核心课程,以及其他理工科专业的计算机通识基础课程.于延.周国辉主编的<C语言程序设计案例教程>(清华大学出版社出版)采 ...

  6. PHP入门《PHP程序设计案例教程》——PHP网站开发

    PHP入门<PHP程序设计案例教程>--PHP网站开发 web表单设计 表单数据获取和提交 1.GET方法 2.POST方法 超链接数据的获取 SESSION管理 SESSION原理 使用 ...

  7. python3程序设计基础答案刘德山_北京大学出版社《Java程序设计案例教程》答案【python程序设计案例教程微课版答案】...

    北京大学出版社<Java程序设计案例教程>答案 哎,我也在找不过时北京交通大学出版的 求大学python3程序设计基础答案 刘德山主编 网上找不到 希望大家帮帮忙 答案我也没有,如果你是计 ...

  8. c语言程序设计北京大学出版社,C语言程序设计案例教程

    C语言程序设计案例教程 (2008年11月北京大学出版社出版的图书) 编辑 锁定 讨论 上传视频 <C语言程序设计案例教程>是2008年11月北京大学出版社出版的图书,作者是徐翠霞.[1] ...

  9. 8051单片机指令系统有哪几种寻址方式?

    8051单片机指令系统有哪几种寻址方式? 寄存器寻址.直接寻址.立即寻址.寄存器间接寻址.变址寻址.相对寻址.位寻址. 寄存器寻址:以通用寄存器的内容为操作数的寻址方式.通用寄存器为A.B .DPT ...

最新文章

  1. 程序员无休止加班的真正原因
  2. php下dat函数e,为你总结一些php信息函数
  3. springmvc + springboot + mybatis java b2b2c电子商城系统源码...
  4. 【NLP】bert4vec:一个基于预训练的句向量生成工具
  5. akka应用_处理Akka应用程序中的每个事件
  6. ObjectStreamClass:监视Java对象的序列化
  7. linux-ubuntu下调出中文输入法
  8. 网络知识普及:双网卡下知识知多少,路由表及网关那点事
  9. BZOJ-1177 [Apio2009]Oil
  10. oracle 01157,Oracle数据库启动时出现ORA-01157和ORA-01110问题
  11. Matlab Tricks(二十五) —— 二维图像的 shuffle
  12. DHTML【3】--HTML
  13. 实习成长之路:MySQL一: 一条SQL查询语句是如何执行的?
  14. 浅谈Vue 中的 computed 和 methods 的使用
  15. JWT实现加密用户信息及信息验证
  16. 火狐浏览器表单不跳转_火狐浏览器的表单问题,求解_html/css_WEB-ITnose -
  17. 如何理解P40采用RYYB比RGGB的感光能力提升40%
  18. ON1 Resize AI 2022(图片无损放大软件)官方中文版介绍 | 图片无损放大用什么软件 | 图片无损放大软件哪个好用?
  19. 飞行棋技巧:你以为想赢只需要运气吗?
  20. HTML5+app开发学习之调试篇

热门文章

  1. (转载)Vim入门图解说明
  2. C#下载文件和将文件转换为数据流下载的示例
  3. JavaScript版代码执行
  4. AndroidStudio_安卓原生开发_Json解析报错_要注意这点---Android原生开发工作笔记141
  5. AndroidStudio安卓原生开发_Intent传过来的值会自动变化_太奇怪了_你碰见过嘛_Http并发引起的问题?_可通过静态变量传值的方式解决---Android原生开发工作笔记130
  6. 结束占用端口号进程(pid)
  7. linux 按照特定字符换行_在Linus Torvalds建议之后内核淘汰80个字符长度限制
  8. vscode制表位_vscode 常用配置
  9. 随想录(jtag知识点小结)
  10. 河南科技学院去年对口计算机分数线,河南科技学院录取分数线2021是多少分(附历年录取分数线)...