3-1-指令系统-CPU寄存器

更新时间:2023-07-18 15:12:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

WIRELESS DIGITAL FULL-DUPLEX VOICE TRANSCEIVER 无线数字全双工语音收发器

TPA4861 射频切换开关SW-438

RF1020SE模块是采用基于CC1020无线通信芯片的无线 收发一体模块,作为微功率无线模块,直线通信距离可 达600米左右。CC1020具有低电压供电、低电流消耗、 高灵敏度等特点,适合微功率远距离的无线传输领域, 如无线称重等。

WIRELESS DIGITAL FULL-DUPLEX VOICE TRANSCEIVER 无线数字全双工语音收发器

SW-438

CPUCC1020

WIRELESS DIGITAL FULL-DUPLEX VOICE TRANSCEIVER 无线数字全双工语音收发器

TPA4861D

Speaker Driver TPA4861D

M/A-COM GaAs RF Switch

SW-438

Freescale 8位单片机指令系统HC08 CPU有5个寄存器、16种寻址方式、140条基 本指令(加上寻址方式可形成270条具体指令),这是学习 08汇编语言的基础。 08汇编语言是学习08系列MCU的重要基础之一,学 好汇编语言有助于进行底层编程、有助于理解编程结构、 有利于理解单片机内部结构。 基本要领: 1〉掌握CPU内部5个寄存器的使用方法; 2〉理解16种寻址方式; 3〉记住常用指令; 4〉进行编程实践

指令系统学习方法汇编指令的一般格式 操作码寻找 寻址方式

标号:操作码 操作数 //注释 CPU寄存器 内存单元(sfr、地址) 指针 常数 标号、特殊符号 伪运算符构成的表达式

操作数

操作码115个

ASL BHS

ASLA ASLX BLO

一共120个操作码

指令系统基本要领

CPU寄存器 寻址模式 指令系统及其分类学习 编程练习 RAM A

#opr

CPU

CCR

H:X

SP

HCS08 CPU 简介

HCS08 CPU与M68HC08 CPU的指令系统完全 相同,且目标代码与M68HC08完全兼容。 同时增加了一些指令和增强了寻址模式以 增加C编译器效率,且支持一个新的背景调 试系统,能够代替早期M68HC08微处理器 的监测模式。

HCS08 CPU的特点包括: 目标代码完全向上兼容M68HC05和M68HC08家族 所有寄存器和存储器映射在单块64 Kbyte地址空间 16位堆栈指针SP(64 Kbyte地址空间中的任意大小堆栈)

16位索引寄存器(H:X)的强大的寻址索引模式 多种寻址模式 8位累加器(A) 支持存储器到存储器的数据传送 高效的位操作指令

快速的8位乘8位和16位除以 8位指令 STOP和WAIT指令唤醒低功耗运行状态

CPU寄存器

CPU寄存器

A这个通用的8 位寄存器是HCS08 主要的数据寄存器。数据可以通过LDA 指令从存储器或 通过PULA 指令从堆栈读入到A。数据通过存数指令STA 存入存储器中或通过堆栈指令 PSHA 将A 进栈到累加器A。多种寻址方式给存储器的存取指令带来了更大的灵活性。传 送指令可以将数据从累加器A 传送到寄存器X 中(TAX),或者从寄存器X 传送到累加器A 中(TXA),或者从累加器A 传送到CCR 中(TAP),或者从CCR 传送到累

加器A 中(TPA)。 TAP 和TPA 中的P 表示处理机状态。A 半交换指令(NSA)使A 中数据的高四位和低四位对 调。 通常对A 中的值通过ADD、SUB、ASLA、RORA、INCA、DECA、AND、ORA、 EOR 等指令执行算术、移位和逻辑操作。其中有些指令如INCA 和ASLA,对A 中的内容 进行操作后放回A 中。另外一种情况如ADD 和AND,它们有两个操作数:一个操作数在A 中,另一个操作数在存储器中。算术和逻辑操作的结果都是替代累加器内的值。 乘法和除法指令使用A 作为一个操作数,并且保存部分值到A 中。MUL 指令将X 和A 中的无符号数相乘并将16 位结果的高低字节分别存储在X 和A 中。DIV 指令将H、A 中的 16 位无符号数除以X 中8 位无符号数,再将商储存在A 中,余数放入H 中。 在进行两个BCD 码数的ADD 或ADC 操作时,需执行十进制调整指令DAA 来纠正A 中的值,使其变为有效的BCD 码2 位数。关于指令的详细解释请查阅BCD 算术运算。 显然,累加器是个非常忙的寄存器,因此如果能够避免使用累加器是很有益的。例 如,从存储器到存储器的传送指令(MOV)就很有用。DBNZ 也很有用,因为它允许循环计 数器工作在内存变量中而不是在累加器中。X 寄存器在许多情况下被当作另一个通用的8 位数据寄存器。有些算术运算操作如清零、加、减、取反、求补和移位也可以使用X 寄存 器。

A指令类型 指令名称 LDA/STA A与别人的数据交换 PULA/PSHA TAX/TXA TPA/TAP NSA 折腾A ASLA 大部分X也行 RORA INCA DECA DAA ADD A与存储器的数据进行 SUB 运算后放回A中 AND ORA EOR A*X=XA MUL H A/X = A……..H DIV 作用 与存储器进行数据交换 与堆栈进行数据交换 与X进行数据交换 与CCR进行数据交换 将A中数据的高四位和低四位对调 算术左移位 循环右移位 加1 减1 十进制调整 加 减 逻辑与 逻辑或 逻辑异或 乘法 除法

H:X这个16 位的变址寄存器事实上是两个独立的8 位寄存器(H 和X) 的合并。变址寻址方式使用H:X 作为16 位的基本参考点,且允许有 16 位偏移量、8 位偏移量和无偏移量的指令,另外一些变址寻址寄 存器在变址用于存取存储器操作时自动增加到16 位变址寄存器。关 于变址寻址方式的详细描述请查阅变址寻址方式。 8 位X 寄存器(H:X 中的低8 位)也被当作一个通用的数据寄存 器。修改类指令(如ASLX、ASRX、CLRX、COMX、DECX、 INCX、LSLX、LSRX、NEGX、ROLX、RORX 和TSTX)允许能被 累加器所执行的ALU 操作的子集。要注意的是,当要改变整个16位 H:X 变址寄存器时,不要用这些指令,因为这些指令只影响X。下 面的指令序列给出了在X 上的16 位形式的8 位操作实例。

Load、store、push 和pull 指令可用于X 中,其寻址方式与用于A 中的变址寻址相同。在16 位H:X

寄存器中也有取数和存数指令,但 没有提供多种不同的寻址方式。进栈(PSHH)和出栈(PULH)指令可 用于H 中,并且这两个简单的指令可将16 位变址寄存器(H:X)进栈 和出栈。

H:X

有时堆栈指针值需要被传送到HX 寄存器中,因此H:X 在堆栈中能当作信息 指针使用。堆栈指针总是指向堆栈中的下一个可用的位置,但是一般情况下变址 寄存器应该直接指向数据。因此,堆栈的16 位值是通过TSX 指令传送到H:X 中, 并加一。因为这个调整,TSX 执行后HX 指向堆栈数据的最后一个字节。当使用 TXS 指令时求补调整就会发生(通过使用TXS 这个值会自减1)。可以认为,当16 位地址在SP 中,它指向下一个有用堆栈位置,若在H:X 中,则它指向最后一个 字节信息。

本文来源:https://www.bwwdw.com/article/jzp1.html

Top