1.M68300系列-MC68332(CPU32,TPU,QSM)概述与指令系统

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 

  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值