您的位置 首页 电路

单片机的指令和寻址方法

单片机要正常运作,事先需编制程序,再把程序放入存贮器中,然后由CPU执行该程序。程序是由指令组成的,指令的基本组成是操作码和操作数。…

单片机要正常运作,事前需编制程序,再把程序放入存贮器中,然后由CPU履行该程序。程序是由指令组成的,指令的根本组成是操作码和操作数。单片机的种类许多,设计时怎样表明操作码和操作数,都有各自的规则,再有指令代码也各不相同,因而,有必要对所选单片机的悉数指令,也便是所谓“指令系统”,有满足的了解。各个系列的单片机虽然有不同的指令系统,但也有其共同性。把握一种单片机的指令系统,对其它系列单片机能够起到举一反三的效果。MCS-51单片机使用广泛,派生种类多,具有代表性,所以,这儿以MCS-51系列的指令系统为例阐明“指令”的组成和使用。

  1、MOV A,#20H

这条指令表明把20H这个数送入累加器A中(一个特别功用寄存器)。

2、ADD A,70H

这条指令表明把累加器A中的内容(在上例中送入的#20H)和存贮器中地址为70H单元中的内容(也是一个数字),经过算术逻辑单元(英文缩写为ALU)相加,并将成果保留在A中。这儿MOV、ADD等称为操作码,而A、#20H、70H等均称为操作数。在汇编语言程序中,操作码一般由英文单词缩写而成,这样有助于回忆,所以又称助记符。如MOV便是英文单词MOVE的缩写,含有搬移的意思;而ADD即为英文单词,其意为相加。因而,关于略懂英语的用户,把握单片机指令的含义是较为便利的。操作数有多种表明法,如以上的#20H称为当即数,即20H便是真实的操作数。而70H是存贮器中某个单元的地址,在该单元中,放着操作数(比方说是3AH),ADD A,70H不是将70H和A中的内容相加,而是从存贮器70H单元中将3AH取出和A中的内容相加。由上可知,要找到实践操作数,有时就要转个弯,乃至转几个弯,这个进程称为寻址,MCS-51共有7种寻址方法,现介绍如下:

一、当即寻址:操作数就写在指令中,和操作码一同放在程序存贮器中。把“#”号放在当即数前面,以表明该寻址方法为当即寻址,如#20H。

二、寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的姓名来表明操作数的地址。例如MOV A,R0就归于寄存器寻址,行将R0寄存器的内容送到累加器A中。

三、直接寻址:操作数放在单片机的内部RAM某单元中,在指令中直接写出该单元的地址。如前例的ADD A,70H中的70H。

四、寄存器直接寻址:操作数放在RAM某个单元中,该单元的地址又放在寄存器R0或R1中。

假如RAM的地址大于256,则该地址存放在16位寄存器DPTR(数据指针)中,此刻在寄存器名前加@符号来表明这种直接寻址。如MOV A,@ R0。其它还有变址寻址、相对寻址、位寻址等。

五、位寻址(即可寻觅某位的内容)功用,适于按位进行逻辑运算的位处理器。除128字节RAM、4k字节ROM和中止、串行口及定时器模块外,还有4组I/O口P0~P3,余下的便是CPU的悉数组成。把4kROM换为EPROM便是8751的结构,如去掉ROM/EPROM部分即为8031的框图,假如将ROM置换为Flash存贮器或EEPROM,或再省去某些I/O,即可得到51系列的派生种类,如89C51、AT89C2051等单片机的框图。

单片机寻址方法越多,找操作数越便利,单片机的功用就越强。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/272548.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部