1、中央处理器(CPU32)
结构特点:分开的用户和监控堆栈指针和地址空间;分开的程序空间和地址空间
多种寻址方式:直接寻址,间接寻址,数据寄存器寻址,地址寄存器寻址,带位移量寻址、
多类指令: 数据传输,算术运算,逻辑运算,位移和循环,位操作,BCD码运算,程序控制, 系统控制
2、RAM模块
适于作为CPU的系统堆栈和变量存储区,存储器映射(2K),$YFF000~$YFFFFF;
3、信号描述
查表(表1-2,MC68332管脚特性简表)
二、CPU32的指令系统和程序设计
CPU32可以支持高级语言,具有查表,插值、低功耗等控制指令。
2.1 CPU32主要特性
32位内部数据总线和算术运算硬件单元;
24位外部地址总线和16位外部数据总线;
8个32位通用数据存储器;
7个32位通用地址存储器;
2.2 CPU32内部的编程寄存器
工作方式:
监控(supervisor)方式(系统方式)-系统各个部件联系在一起的程序,在监控模式下编写
用户模式(user)方式:执行用户专用任务---在用户方式下编写
监控方式可以执行所有指令,用户方式有些指令不行
注意:32位的用户堆栈指针(A7),监控堆栈指针(A7'),16bit的状态标志寄存器CCR(高8bit-系统,低8bit-用户),32bit向量基址寄存器(VBR),两个内部功能码寄存器(CDFC,DFC)
2.2.1 数据寄存器(D7~D0)
可存放,字节(8bit),字(16bit),长字节(32bit);存放和操作时低位优先。
2.2.2 地址寄存器(A0~6,A7,A7')
不能用于8位地址数据的操作,可用于16位地址数据的操作;
可作为变址寄存器(加,减,比较的指令中)
2.2.3 程序计数器PC
指令执行或异常处理期间,CPU32将PC加1后放入PC
2.2.4 状态标志寄存器SR
2.2.5 内部功能码寄存器SFC和DFC
可用于地址扩展(8个16M)
2.2.6 向量基址寄存器VBR
1024字节异常处理向量表的首地址(分析中断),表中256个异常处理向量
2.3 CPU32的存储器
以字节寻址为基础,(最小单元是字节),字或长字-高位存放在低地址
字和双字数据地址是偶数值
2.4 CPU32的寻址方式
CPU32的存储器空间:程序空间和数据空间。
注意:(1)若是指令中含有立即操作数,则立即操作数放入程序空间,(2)采用程序计数器寻址方式的指令中的操作数,放入程序空间。
2.4.1 隐含寻址
操作数据在特殊寄存器(PC,SSP,USP.系统堆栈指针SP,SR)中
2.4.2 寄存器直接寻址
ADD D7,D3
ADD A3,D6
2.4.3 存储器寻址
ADD (A3),D3
ADD (A3)+,D3 ;先处理ADD,再A3内容+2(规定字节+1,默认字+2,长字+4)
ADD -(A3),D3 ; 先处理-1或2或4(存储器地址指向数据长度),再处理ADD
ADD ($56,A3),D3 ; 先处理$56+A3,再寻址取值
2.4.4 特殊寻址方式
ADD ($6,PC),d3 ;程序计算器间接寻址
绝对短地址寻址 ADD $7100, D3 ; PC+4
绝对长寻址 ADD $4A813C,D3 ; 低16位地址有效,PC+6
立即寻址 ADD #$1006,D3 ; 立即数位于程序
2.4.5 寻址方式说明
2.6 汇编伪指令
伪指令是一条指令。它在程序中不是可有可无的,使用时受到严格的规范,与标准指令一样,在程序中占有固定的位置,有固定的书写格式。每条伪指令都与标准指令一样可实现特定的功能,伪指令是不能用标准指令替代的。
伪指令不是一条真正的指令,没有指令代码。在程序编译过程中,伪指令的功能会被实现,但伪指令会被删除,在编译后的目标文件中(目标文件一般是代码文件),不会有伪指令的编码。
指令是对计算机发出的命令,而伪指令则是对编译器发出的命令。在编译程序结束时,伪指令的使命就完成了
伪指令是为程序开发工程师提供辅助的程序表达,让编译器实现一些标准指令所不能表达的内容。
伪指令的作用:
1、程序定位的作用。把各程序段之间的相互关系和在存储器的位置告诉编译器。
2、为非指令代码进行定义。包括逻辑变量、字符和存储区等。
3、为程序完整性做标注。程序段的开始和结束。
4、有条件地引用程序段。比如条件循环、条件选择以及宏等
常用汇编伪指令
(1)定义数据伪指令(DC): DC.B 10,5,7 ;高位在前,低位在后
(2)定义常量块伪指令(DCB) DCB.B 5,0 ;把0值放入存储器5个连续字节中
(3)定义存储单位伪指令(DS) DS.W 1; (不会初始化)
(4)赋值伪指令 (EQU) DATA EQU $6000 ; (类似#define,DATA只能定义一次)
(5)赋值伪指令(SET)(与EQU相似,不过可以在其他地方重新定义)
(6)定位伪指令(ORG) 规定程序起始地址,数据区,用户堆栈起始地址(连续地址)
(7)定位伪指令SECTION (与ORG类似,产生浮动程序段)
(8)结束伪指令END