【教学课件】第四章微处理器结构和指令集.ppt
《【教学课件】第四章微处理器结构和指令集.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章微处理器结构和指令集.ppt(66页珍藏版)》请在三一办公上搜索。
1、第四章 微处理器结构和指令集,4.1 微处理器的内部寄存器结构4.2 S12汇编指令集4.3 指令按功能分类4.4 指令按寻址方式分类4.5 用汇编语言编写程序,Page 1,Page 2,Numbering and coding systems,4.1 微处理器的内部寄存器结构 典型的16位微处理器,Page 3,Numbering and coding systems,进位/借位标志C溢出标志V为零标志Z为负标志N,条件码计数器 CCR,7,0,中断屏蔽位IHalf Carry(For BCD)非屏蔽中断允许XSTOP 运行模式禁止位,Interrupt priority level IP
2、L(07)0:关中断,CCR,4.1 微处理器的内部寄存器结构 典型的16位微处理器,1KB EEPROM,1KB EEPROM,Page 4,MC9S12XS128,8KB RAM,16KB FLASH,16KB FLASH复位、中断向量区,2KB I/O空间,$0000,$0800,$0C00,$4000,$FFFF,$FF00,4.1 微处理器的内部寄存器结构 基本内存空间分配,程序代码,变量、堆栈,外设寄存器,2KB EEPROM,12KB RAM,48KB FLASH,复位、中断向量区,2KB I/O空间,$0000,$0800,$1000,$4000,$FFFF,典型的64KB存储
3、空间分配,4KB RAM,$2000,$1000,16KB FLASH,$8000,$C000,Page 5,Numbering and coding systems,4.2 S12X 汇编指令集,汇编语言是机器码语言,与CPU的硬件结构紧密相关,不同的CPU其汇编语言是不同的,程序不能移植,使用不便。高级语言:与计算机的硬件结构没多大关系。程序通用性好,便于移植。如:C语言、BASIC语言。虽然应用程序可以主要用C语言来开发,但与时序相关的硬件操作必须用汇编语言编写,因为汇编语言程序可以准确地计算出某段程序的执行时间。汇编语言使用助记符、符号和数字等来表示的程序语言。容易理解和记忆,它与机器
4、语言一一对应。,Page 6,Numbering and coding systems,汇编语言指令格式,标号:操作码 第一操作数,第二操作数,第三操 作数,第四操作数;注释 操作码:指令代码,以符号形式给出该指令执行什么操 作。由25个英文字母表示。操作数:参与操作的数据或数据存放的地址。表示可选。要养成直接读操作助记符、直接记英语含义的习惯。如 CLR 读作 clear LDAA 读作 load accumulator A,Page 7,Numbering and coding systems,4.3 指令按寻址方式分类,17,17,4000,1.隐含寻址(inherent)隐含寻址指令中
5、只有操作码,没有操作数。如 PSHA;(SP)-1SP,(A)(SP)执行前 执行后,3FFF,FF,A,SP,4000,3FFF,SP,A,Data memory,Page 8,4.3 指令按寻址方式分类,2.立即数寻址(immediate)操作码后有一个或两个字节的操作数,该操作数表示一个8或16位的数值。立即数由#后面跟数据表示。如:LDY#$3000;$表示后面是十六进制数字 0 xLDAA#10;缺省为十进制 ORAA#%0001011;%表示后面是二进制数字 0b,Page 9,4.3 指令按寻址方式分类,3.直接寻址(direct)操作数为单字节地址,高位默认为$00,只能对$0
6、0$FF存储单元进行寻址。$00$FF是I/O口寄存器地址。如:LDAA$40;STAA$40;(A)(0040)在单字节地址前加就表示的是直接寻址。,Page 10,4.3 指令按寻址方式分类,4.扩展寻址(Extended)扩展寻址中操作数占2个字节,表示的是存储单元的地址,故寻址范围是64KB。如:STAA$2040;(A)(2040)STAA$40;(A)(0040)STAA$0040;(A)(0040)因开发环境不同,汇编生成的机器代码会不同,codewarrior中上述两条指令相当于直接寻址。,Page 11,4.3 指令按寻址方式分类,5.变址寻址(Indexed),寄存器间接寻
7、址 操作数表示一个地址偏移量。有效地址由变址寄存器X(或Y,SP,PC)的值加上这个偏移量得到的。偏移量细分为无偏移量、5位(16)、9位(255)或16位偏移量。如:STAA,X;无偏移量 STAA 10,X;=5位 STAA-200,X;=9位LDAA 2000,X;16位LDAA 2000,X;X+2000,X+2001,Page 12,4.3 指令按寻址方式分类,6.带自动加、减5位偏移量的间接变址寻址,如:MOVW 2,X+,4,+Y 如X=$2000,Y=$3000,指令含义是将$2000和$2001两单元的内容传给$3004和$3005两单元。与C语言相同,X+为先用后加,+Y为
8、先加后用。,Page 13,4.3 指令按寻址方式分类,7.相对寻址如:BNE LABLE;CCR寄存器中Z不为 零,就转到LABLE处。JMP D,PC;转到PC+D所指向的存 储器中的值所指处。偏移量是转移的目的值与当前地址值之差,这是编译器自动计算出来的。根据偏移量的大小分为相对短转移(-128127)和相对长转移(-3276832767)。,Page 14,4.4 指令按功能分类,数据空间分为寄存器和存储器。寄存器:,B,CCR,D,X,Y,SP,存储器:对MC9S12XS128为$2000$3FFF空间。位数相等条件下完成数据传送,4.3.1 数据传送指令,Register,Memo
9、ry,Load,Store,Transfer,Move,Exchange,Load指令,读到寄存器中来。如 LDAA#$41;#立即数,$16进制 LDAA 读作 Load Accumulator A LDAB Load B(M)B LDD Load D(M:M+1)(A:B)LDS Load SP(M:M+1)(SPH:SPL)LDX Load index register X 间址寄存器 LDY Load index register Y LEAS Load Effective Address into SP(P320)LEAX Load Effective Address into X
10、LEAY Load Effective Address into Y 有效地址,Page 15,Store指令,写到寄存器中去。如 STAA$2000;(A)($2000)STAA Store A(A)M STAB Store B STD Store D STS Store SP STX Store X STY Store Y,Page 16,Move指令,不经过寄存器的、直接存储器数据传送指令。如 MOVB$2000,$2008;($2000)($2008)MOVB Move Byte MOVW Move Word,Move指令,Page 17,Transfer指令寄存器到寄存器的数据传送指
11、令。TAB Transfer A to B(A)B TBA Transfer B to A TAP Transfer A to CCR TPA Transfer CCR to A TFR Transfer register to register TSX Transfer SP to X TSY Transfer SP to Y TXS Transfer X to SP TYS Transfer Y to SP,Page 18,EXG Exchange register to register XGDX Exchange D with Y XGDY Exchange D with Y,Exch
12、ange指令 寄存器间数据交换,Page 19,PSHA Push A(SP)-1SP,(A)(SP)PSHB Push B PSHD Push DPSHC Push CCRPSHCW Push CCRH:CCRPSHX Push X PSHY Push Y,堆栈操作指令,Page 20,PULA Pull A(M(SP)A,(SP)+1SPPULB Pull B PULD Pull DPULC Pull CCRPULCW Pull CCRH:CCRPULX Pull X PULY Pull Y,堆栈操作指令,Page 21,SEX Sign Extend Byte to Word 把8位数转
13、成16位数的符号扩展指令 D7=0,THEN D8-D15=0X00 D7=1,THEN D8-D15=0XFFLDAA#$84SEX A,DLDAA#$04SEX A,D指令执行后,(A)=;(B)=,4.4.2 算术与逻辑运算指令,ADDA ADD without carry to A(A)+(M)AADDB ADD without carry to B(B)+(M)BADDD ADD without carry to D(A:B)+(M:M+1)A:BADDX ADD without carry to X(X)+(M:M+1)XADDY ADD without carry to Y(Y)
14、+(M:M+1)YABA Add A to B(B)+(A)AABX Add B to X(B)+(X)XABY Add B to Y(B)+(Y)Y,加、减法指令(无进位),ADCA ADD with carry to A(A)+(M)+CAADCB ADD with carry to B(B)+(M)+C BADED ADD with carry to D(A:B)+(M:M+1)+C A:BADEX ADD with carry to X(X)+(M:M+1)+C XADEY ADD with carry to Y(Y)+(M:M+1)+C Y,加、减法指令(有进位),SUCA Subt
15、ract with borrow from A(A)-(M)-CASUCB Subtract with borrow from B(B)-(M)-CBSUED Subtract with borrow from D(A:B)-(M:M+1)+C A:BSUEX Subtract with borrow from X(X)-(M:M+1)+C XSUEY Subtract with borrow from Y(Y)-(M:M+1)+C Y,加、减法指令(有进位),SUBA Subtract memory from A(A)-(M)ASUBB Subtract memory from B(B)-(
16、M)BSUBD Subtract memory from D(A:B)-(M:M+1)A:BSUBX Subtract memory from X(X)-(M:M+1)XSUBY Subtract memory from Y(Y)-(M:M+1)YSBA Subtract B from A(A)-(B)A,加、减法指令(无借位减法),EMUL Multiply(unsigned)16 by 16(D)(Y)Y:DEMULS Multiply(signed)16 by 16(D)(Y)Y:DMUL Multiply(unsigned)8 by 8(A)(B)A:B,乘除法指令,EDIV Divi
17、de(unsigned)32 by 16(Y:D)(X)Y,RemainedDEDIVS Divide(signed)32 by 16(Y:D)(X)Y,RemainedDFDIV Fractional Divide(unsigned)16 by 16(D)(X)X,RemainedDIDIV Integer Divide(unsigned)16 by 16(D)(X)X,RemainedDIDIVS Integer Divide(signed)16 by 16(D)(X)X,RemainedD,乘除法指令,EMACS Multiply and Accumulate(signed)(M(X):
18、M(X+1)(M(Y):M(Y+1)+(MM+3)MM+3查表、插值指令TBL Table Lookup and interpolate 8-bit(M)+(B)(M+1)-(M)AETBL Table Lookup and interpolate 16-bit(M:M+1)+(B)(M+2:M+3)-(M:M+1)D,乘加除法指令,DAA Decimal Adjust(A)10调整规则:加法结果大于9,或产生H进位,结果+6减法结果有借位,结果-6,十进制调整的BCD指令,(A)=37H,(B)=46H,即十进数37和46的BCD码 执行 ADDA B 后:3 7 H|0011|0111 4
19、 6 H+|0100|0110 进位 0|0000|1100-|0111|1101 结果:低4位已非BCD码。DA A 调整|0111|1101+|0000|0110-83 H|1000|0011,INC Increment memory(M)+$01 MINCA Increment A(A)+$01 MINCB Increment B(B)+$01 MINCW Increment memory(M:M+1)+$0001M:M+1INS Increment SP(SP)+$0001SPINX Increment X(X)+$01 XINY Increment Y(Y)+$01 Y,加一减一指令
20、,DEC Decrement memory(M)-$01 MDECA Decrement A(A)-$01 MDECB Decrement B(B)-$01 MDECW Decrement memory(M:M+1)-$0001M:M+1DES Decrement SP(SP)-$0001SPDEX Decrement X(X)-$01 XDEY Decrement Y(Y)-$01 Y,加一减一指令,CLC Clear C bit in CCR 0 CCLI Clear I bit in CCR 0 ICLV Clear V bit in CCR 0 VCLR Clear memory$0
21、MCLRA Clear A$0 MCLRB Clear B$0 MCLRW Clear memory 2bytes$00 M:M+1CLRX Clear X 2bytes$00 XCLRY Clear Y 2bytes$00 Y,清零指令,COM Complement memory,1byte$FF-(M)M or(/M)MCOMA Complement A,1byte$FF-(A)A or(/A)ACOMB Complement B,1byte$FF-(B)B or(/B)BCOMW Complement memory,2bytes$FFFF-(M:M+1)M:M+1COMX Complem
22、ent X,2bytes$FFFF-(X)XCOMY Complement Y,2bytes$FFFF-(Y)Y,求反指令,NEG Complement memory,1byte$00-(M)M or(/M)+1 MNEGA Complement A$00-(A)A or(/A)+1ANEGB Complement B$00-(B)B or(/B)+1BNEGW Complement memory,2bytes$0000-(M:M+1)M:M+1NEGX Complement X,2bytes$0000-(X)XNEGY Complement Y,2bytes$0000-(Y)Y,取负数指令,
23、CBA Compare A to B(A)-(B)影响CCR寄存器CMPA Compare A to memory(A)-(M)CMPB Compare B to memory(A)-(M)CPD Compare D to memory(A:B)-(M:M+1)CPS Compare SP to memory(SP)-(M:M+1)CPX Compare X to memory(X)-(M:M+1)CPY Compare Y to memory(Y)-(M:M+1),比较指令,CPED Compare D to memory with borrow(A:B)-(M:M+1)-CCPES Com
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第四 微处理器 结构 指令

链接地址:https://www.31ppt.com/p-5665018.html