搜索
bottom↓
回复: 0

UPD78F9211/9212/9210 CPU 指令地址寻址

[复制链接]

出0入0汤圆

发表于 2012-9-8 00:29:25 | 显示全部楼层 |阅读模式
UPD78F9211UPD78F9211/9212/9210 CPU 指令地址寻址

一条指令的地址是由程序计数器(PC)决定的。根据执行指令时所获取的下一条指令的字节数,程序计数器(PC)的内容自动增加(每字节+1)。在执行分支指令时,将程序计数器(PC)的内容设置为分支的目的地址,并按以下方式确定地址。(想要了解每条指令的详细信息,请参考78K/0S 系列指令用户手册(U11047E))。

1.1 相对寻址
[功能]
将一条指令的8 位立即数(偏移量:jdisp8)与下一条指令的起始地址相加,结果赋给程序计数器(PC),然后转向相加结果指向的地址。这个偏移量是带符号位的补码(-128 到+127),其中第7 位是符号位。换句话说,在相对寻址中,分支的范围是从下一条指令起始地址的-128 ~ +127 之间。
当执行“BR $addr16”指令或条件转移指令时,将实现上述功能。

当S=O ,α的所有位都是0
                               当S=1 ,α的所有位都是1

1.2 立即寻址
[功能]
将指令中的立即数赋给程序计数器(PC),然后转向该地址。在执行“CALL !addr16”指令和“BR !addr16”指令时,实现此功能。
“CALL !addr16” 和“ BR !addr16”指令的转移地址范围是所有内存空间。

CALL !addr16 指令和BR !addr16 指令

1.3 表间接寻址
[功能]
通过指令码低5 位的立即数(从第1 位到第5 位),访问特定存储单元的表的内容(转移目的地址),并将表的内容赋给程序计数器(PC),然后转向该地址。在执行“CALLT [addr5]”指令时,进行表间接寻址。
该指令访问的地址范围是内存表中的40H ~ 7FH 之间所存储的地址,转移地址范围可以是整个存储器空间。

1.4 寄存器寻址
[功能]
将一条指令的寄存器对(AX)的内容赋值给程序计数器(PC),然后转向该地址。
当执行“BR AX”指令时,实现此功能。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 07:57

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表