8051架构以及汇编指令的翻译

来源:本站
导读:目前正在解读《8051架构以及汇编指令的翻译》的相关信息,《8051架构以及汇编指令的翻译》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《8051架构以及汇编指令的翻译》的详细说明。

SP 初始化 07H ,向上生长,空栈,也就是先送数据再移动 SP,可以设置在 00~7FH

89S52 的ROM 范围是 00H ~ 1FFFH 共 8K

SRAM 的分布

0~1F R0~R7*4BANK

20H ~ 2FH BIT ADDRESSING

30H ~ 7FH SRAM

P0 ~ P3 口,送 1 或者 0 是输出状态。送1的时候端口是高阻态可以读取数据。

EA 引脚决定使用内部还是外部ROM,一般是拉到VDD表示使用内部ROM

PSEN 外部存储器使能

ALE 锁存器使能

汇编指令的翻译

写汇编代码的时候编译器对这些代码进行翻译。

假设我们两条简单的指令JMP指令,看看到底怎么翻译的:

CSEGAT00H

LJMP 1204H

AJMP 101H

END

LOC OBJ LINE SOURCE

----1 CSEG AT 00H

0000 021204 2 LJMP 1204H

0003 2101 3 AJMP 101H

4 END

首先看 LJMP 的二进制码 00000010 A15-A8 A7-A0 其中 0X02是指令码,剩下的 16BIT 是地址。

可以看出 LJMP 需要3个字节来保存所有信息。LJMP 1204H 的地址是 1204H,那么这条指令很自然

的翻译为 021204 查看 LIST 文件可以确认这点。

再看 AJMP 指令 AJMP 101H

二进制码是 A10 A9 A8 00001 A7 A6 A5 A4 A3 A2 A1 A0 同样是换汤不换药,指令码是 00001

剩下的是地址 101H 了其中高三位是 001 ,低8位是 0000-0001 所以指令的合成

001(高三位)+00001(指令码)+0000-0001(低8位)于是得到 2101 了,可以看出这里只需要 2字节。

其他代码都是这样出来的。

寻址方式带来的指令差异。所谓的寻址,就是寻找地址,简单点说,就是从什么地方能找到数据

04 1INCA 可以访问 ACC

05 2INCdirect 可以直接访问SRAM为之直接寻址

06 1INC@R0 可以通过 R0 R1 简介访问SRAM,为之间接寻址

07 1INC@R1

08 1INCR0 可以访问 R0~R7 为之寄存器寻址

09 1INCR1

0A 1INCR2

0B 1INCR3

0C 1INCR4

0D 1INCR5

0E 1INCR6

0F 1INCR7

可以看出,虽然名字有点怪,但是道理确是很简单。

提醒:《8051架构以及汇编指令的翻译》最后刷新时间 2024-03-14 01:10:47,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《8051架构以及汇编指令的翻译》该内容的真实性请自行鉴别。