汇编语言指令系统.
汇编语言--指令系统整理总结--转贴2007-05-1722:36对于计算机软件专业的学生,适当的学习一些汇编语言知识,我认为很重要,有助于你对于计算机底层工作的了解,帮助你更好的理解计算机高级语言,汇编原理,也对于学习操作系统很有帮助...近来自己在学汇编语言... 整理总结了常用的一些指令,认为对于学习汇编的龙友会有一些帮助以下内容均为个人整理...错误不当之处还望大家指出更正..谢谢..每条指令均按照1、指令的汇编格式2、指令的基本功能3、指令的寻址方式4、指令对标志位的影响5、指令的特殊要求这 5条内容的形式来对每条指令进行归纳总结....[数据传送指令]一、通用数据传送指令1、传送指令 MOV (move指令的汇编格式:MOVDST,SRC指令的基本功能:(DST<-(SRC将原操作数(字节或字传送到目的地址。
指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式, 这个限制适用于所有指令。
指令的执行对标志位的影响:不影响标志位。
指令的特殊要求:目的操作数 DST 和源操作数 SRC 不允许同时为段寄存器;目的操作数 DST 不能是 CS,也不能用立即数方式。
2、进栈指令 PUSH (pushonto the stack出栈指令 POP (popfrom the stack指令的汇编格式:PUSHSRC ;POP DST指令的基本功能:PUSH指令在程序中常用来暂存某些数据,而 POP 指令又可将这些数据恢复。
PUSH SRC (SP<-(SP-2;(SP<-(SRCPOP DST (DST<-((SP;(SP<-(SP指令支持的寻址方式:push和 pop 指令不能不能使用立即数寻址方式。
指令对标志位的影响:PUSH和 POP 指令都不影响标志位。
指令的特殊要求:PUSH 和 POP 指令只能是字操作, 因此, 存取字数据后, SP 的修改必须是+2或者 -2; POP 指令的 DST 不允许是 CS 寄存器;3、交换指令 XCHG (exchange指令的汇编格式:XCHGOPR1,OPR2指令的基本功能:(OPR1<->(OPR2指令支持的寻址方式:一个操作数必须在寄存器中,另一个操作数可以在寄存器或存储器中。
指令对标志位的影戏:不影响标志位。
指令的特殊要求:不允许使用段寄存器。
二、累加器专用传送指令4、输入指令 IN (input输出指令 OUT (output指令的汇编格式:INac,port port<=0FFHIN ac,DX port>0FFHOUT port,ac port<=0FFHOUT DX,ac port>0FFH指令的基本功能:对 8086及其后继机型的微处理机,所有 I/O端口与 CPU 之间的通信都由输入输出指令 IN 和 OUT 来完成。
IN 指令将信息从 I/O输入到CPU,OUT 指令将信息从 CPU 输出到 I/O端口, 因此,IN 和 OUT 指令都要指出 I/O 端口地址。
IN ac,port port<=0FFH(AL<-(port传送字节或 (AX<-(port+1,port传送字IN ac,DX port>0FFH(AL<-((DX传送字节或 (AX<-((DX+1,(DX传送字OUT port,ac port<=0FFH(port<-(AL传送字节或 (port+1,port<-(AX传送字OUT DX,ac port>0FFH(DX<-(AL传送字节或 ((DX+1,(DX<-(AX传送字指令的特殊要求:只限于在 AL 或 AX 与 I/O端口之间传送信息。
传送 16位信息用 AX,传送 8位信息用 AL,这取决于外设端口的宽度。
5、换码指令 XLAT (translate指令的汇编格式:XLATopr 或 XLAT指令的基本功能:这条指令根据 AL 寄存器提供的位移量,将 BX 指使的字节表格中的代码换存在 AL 中。
(AL<-((DS*16+(BX+(AL指令对标志位的影响:不影响标志位。
指令的特殊要求:所建字节表格的长度不能超过 256字节,因为存放位移量的是8位寄存器 AL。
opr 为表格的首地址,因为 opr 所表示的偏移地址已存入 BX 寄存器,所以 opr 在换码指令中可有可无,有则提高程序的可读性。
三、地址传送指令6、有效地址传送器 LEA (loadeffective address指令的汇编格式:LEAreg,src指令的基本功能:LEA指令把源操作数的有效地址送到指定的寄存器,这个有效地址是由 src 选定的一种存储器寻址方式确定的。
指令支持的寻址方式:各种存储器寻址方式。
指令对标志位的影响:不影响标志位。
指令的特出要求:指令中 reg 不能是段寄存器;7、指针送寄存器和 DS LDS (loadDS with point指针送寄存器和 ES LES (loadES with point指令的汇编格式:LDSreg,srcLES reg,src指令的基本功能:LDS和 LES 指令把确定内存单元位置的偏移地址送寄存器,段地址 DS 或 ES。
这个偏移地址和段地址(也称地址指针是由 src 指定的两个相继字单元提供的。
LDS reg,src (reg<-(src(DS<-(src+2LES reg,src (reg<-(src(ES<-(src+2指令支持的寻址方式:src必须为存储器寻址方式指令对标志位的影响:不影响标志位。
指令的特殊要求:指令中 REG 不能是段寄存器;四、标志寄存器传送指令8、标志寄存器的低字节送 AH LAHF (loadAH with FLAGS 指令的汇编格式:LAHF指令的基本功能:(AH<-(FLAGS0-7指令对标志位的影响:不影响标志位9、AH 送标志寄存器低字节 SAHF(storeAH into FLAGS指令的汇编格式:SAHF指令的基本功能:(FLAGS0-7<-(AH指令对标志位的影响:由装入值来确定标志位的值。
10、标志进栈 PUSHF (pushthe flags指令的汇编格式:PUSHF指令的基本功能:(SP<-(SP-2((SP+1,(SP<-(FLAGS0-1511、标志出栈 POPF (popthe FLAGES指令的汇编格式:POPF指令的基本功能:(FLAGS0-15<-((SP+1,(SP(SP<-(SP+2指令对标志位的影响:由装入值来确定标志位的值。
[算术指令]一、加法指令 12、加法指令 ADD (addition指令的汇编格式:adddst,src指令的基本功能:(dst<-(src+(dst指令支持的寻址方式:他们两个操作数不能同时为存储器寻址。
即为除源操作数为立即数的情况外, 源操作数和目地操作数必须有一个寄存器寻址方式。
指令对标志位的影响:SF=1加法结果为负数(符号位为 1SF=0加法结果为正数(符号位为 0ZF=1加法结果为零ZF=0加法结果不为零CF=1最高有效位向高位有进位CF=0最高有效位向高位无进位OF=1两个同符号数相加(正数+正数或负数+负数,结果符号与其相反。
OF=0两个不同符号数相加,或同符号数相加,结果符号与其相同。
13、带进为加法指令 ADC (addwith carry指令的汇编格式:ADDdst,src指令的基本功能:(dst<-(src+(dst+CF指令支持的寻址方式:他们两个操作数不能同时为存储器寻址。
即为除源操作数为立即数的情况外, 源操作数和目地操作数必须有一个寄存器寻址方式。
指令对标志位的影响:SF=1加法结果为负数SF=0加法结果为正数ZF=1加法结果为零ZF=0加法结果不为零CF=1最高有效位向高位有进位CF=0最低有效位相高位无进位OF=1两个同符号数相加,结果符号与其相反,OF=0两个同符号数相加,或同符号相加,结果符号与其相同14、加 1指令 INC (increament指令的汇编格式:INCopr指令的基本功能:(opr<-(opr指令支持的寻址方式可以使用除立即数方式外的任何寻址方式指令对标志位的影响:SF=1加法结果为负数SF=0加法结果为正数ZF=1加法结果为零ZF=0加法结果不为零OF=1两个同符号数相加,结果符号与其相反,OF=0两个同符号数相加,或同符号相加,结果符号与其相同。
二、减法指令15、减法指令 SUB (subtract指令的汇编格式:SUBdst,src指令的基本功能:(dst<-(dst-(src指令支持的寻址方式:他们两个操作数不能同时为存储器寻址。
即为除源操作数为立即数的情况外, 源操作数和目地操作数必须有一个寄存器寻址方式。
指令对标志位的影响:SF=1减法结果为负数(符号位为 1ZF=1减法结果为零ZF=0减法结果不为零CF=1二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况CF=0二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况OF=1两数符号相反(正数-负数,或负数-正数,而结果符号与减数相同。
OF=0同符号数相减时,或不同符号数相减,其结果符号与减数不同。
16、带借位减法指令 SBB (subtractwith borrow指令的汇编格式:SBBdst,src指令的基本功能:(dst<-(dst-(src-CF指令支持的寻址方式:他们两个操作数不能同时为存储器寻址。
即为除源操作数为立即数的情况外, 源操作数和目地操作数必须有一个寄存器寻址方式。
指令对标志位的影响:SF=1减法结果为负数(符号位为 1SF=0减法结果为正数(符号位为 0ZF=1减法结果为零ZF=0减法结果不为零CF=1二进制减法运算中最高有效位向高位有借位(被减数小于减数,不够减的情况CF=0二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况OF=1两数符号相反(正数-负数,或负数-正数,而结果符号与减数相同。
OF=0同符号数相减时,或不同符号数相减,其结果符号与减数不同。
17、减 1指令 DEC (decrement指令的汇编格式:DECopr指令的基本功能:(opr<-(opr-1指令支持的寻址方式:可以使用除立即数方式外的任何寻址方式。
指令对标志位的影响:SF=1减法结果为负数(符号位为 1SF=0减法结果为正数(符号位为 0ZF=1减法结果为零ZF=0减法结果不为零OF=1两数符号相反(正数-负数,或负数-正数,而结果符号与减数相同。
第3章 8086指令系统-汇编语言程序设计教程-陆遥-清华大学出版社
直接寻址方式可以利用变量名的偏移地址属性来 描述操作数的偏移地址(可直接用变量名,或将 变量名置于方括号[ ]中),段寄存器默认为DS。 如果实际使用的段寄存器不是DS,则必须用段 前缀明确指出。
【例3.7】设数据段内有如下变量定义语句
VAR DB 76H,5CH,0A3H,08H
分析以下指令的执行结果。
3.1 指令系统基本概念
指令是给计算机下达的一个简单操作任务,CPU 所能执行的所有指令构成了一个计算机的指令系 统(也称指令集)。
汇编语言指令是对机器指令的符号化表示,采用 助记符来表示指令的操作功能和操作对象。
指令通常可以分为以下几类:
⑴ 数据传送类指令。 ⑵ 算术运算类指令。
⑸ 程序控制类指令。 ⑹ 处理器控制类指令。
【例3.3】要求将数据68传送给AL寄存器,写出相应的传 送指令。 分析:由于AL寄存器接收数据,所以目的操作数为AL, 采用寄存器寻址方式,而源操作数为常数68,采用立即寻 址方式
MOV AL,68 ;AL←68
【例3.4】设被加数存于寄存器DX中,加数为512,写出相 应的加法指令。 分析:因为被加数由寄存器DX提供,所以DX为目的操作 数,采用寄存器寻址方式,而加数为常数512,采用立即 寻址方式
操作数。
2. ADD指令
指令格式:ADD DST,SRC 指令功能:DST←(DST)+(SRC) 。执行加法运算。 操作数特点:两个操作数。被加数DST为目的操作数,加
数SRC为源操作数。
3. NOT指令
指令格式:NOT OPR 指令功能:OPR←(OPR) 。执行逻辑非运算。 操作数特点:一个操作数。OPR既是目的操作数,也是源
段地址由段寄存器提供,用段前缀(DS:,ES:, CS:或SS:)来指明;偏移地址(亦称有效地址) 则有多种表示形式,由此形成了不同的存储器寻 址方式。
第5章 指令与指令系统和汇编语言程序设计(2)
运行过程中,可以直接看到屏幕上显示的内容,运行过后,再用D 20F0命令看内存的20F0区域中保存的运行结果,6个大写的英文字母 已经被修改为小写字母: 0061 0062 0063 0064 0065 0066
汇编语言程序设计
1 将寄存器R2和R3的内容相加,结果存入R0。 2 将寄存器R2和R3的内容相加,如果有进位,寄存器R0的内 容置1,否则置0 3 若R1的内容是负数则置R0为-1,否则置0(提示:用TEST) 4 检测R3的是奇数,R0的内容置为1,否则置为0。(提示: 用移位检测C的方法来测量一位) 5 将内存中1000H起始的10个单元的内容取出加2送入原地址。 6 已知内存中1000H起始的10个单元中的数是ASC码,将其取 出送显示。 7 将键盘录入的数存到内存1000H单元中。 8 将键盘录入的10个数存到内存1000H-1009H。
有寄存器寻址,寄存器间接寻址等7种。
从表5.1中可以看出, (A组) INC DR 单操作数(DR的内容加1) (B组) LDRR DR,[SR] 双操作数 (DR [SR])
(4)从指令的功能区分
有运算、读写内存类指令,输入输出指令,转移 指令,子程序调用指令,置进位标志指令等。
从表5.1中可以看出, (A组) ADD DR ,SR 加运算 (B组) LDRR DR,[SR] 读写内存
41 42 43 44 45 46
A 2080
MVRD R3, 0006 ;指定被读数据的个数
MVRD R2, 20F0 ;指定被读、写数据内存区首地址
(2084) LDRR R0, [R2]
;读内存中的一个字符到R0寄存器
CALA 2100 ;调用子程序(入口地址为2100),完成显示、
MCS-51系列单片机的指令系统和汇编语言程序
3·1 汇编指令第3 章MCS 一51 系列单片机的指令系统和汇编语言程序3·1·1 请说明机器语言、汇编语言、高级语言三者的主要区分,进一步说明为什么这三种语言缺一不行。
3·1·2 请总结:(1)汇编语言程序的优缺点和适用场合。
(2)学习微机原理课程时,为什么肯定要学汇编语言程序?3·1·3MCS 一51 系列单片机的寻址方式有哪儿种?请列表分析各种寻址方式的访问对象与寻址范围。
3·1·4 要访问片内RAM,可有哪几种寻址方式?3·1·5 要访问片外RAM,有哪几种寻址方式?3·1·6 要访问ROM,又有哪几种寻址方式?3·1·7 试按寻址方式对MCS 一51 系列单片机的各指令重进展归类(一般依据源操作数寻址方式归类,程序转移类指令例外)。
3·1·8 试分别针对51 子系列与52 子系列,说明MOV A,direct 指令与MOV A,@Rj 指令的访问范围。
3·1·9 传送类指令中哪几个小类是访问RAM 的?哪几个小类是访问ROM 的?为什么访问ROM 的指令那么少?CPU 访问ROM 多不多?什么时候需要访问ROM?3·1·10 试绘图示明MCS 一51 系列单片机数据传送类指令可满足的各种传送关系。
3·1·11 请选用指令,分别到达以下操作: (1)将累加器内容送工作存放器R6.(2)将累加器内容送片内RAM 的7BH 单元。
(3)将累加器内容送片外RAM 的7BH 单元。
(4)将累加器内容送片外RAM 的007BH 单元。
(5)将ROM007BH 单元内容送累加器。
3·1·12 区分以下指令的不同功能:(l)MOV A,#24H 与MOV A.24H(2)MOV A,R0 与MOV A,@R0(3)MOV A,@R0 与MOVX A,@R03·1·13 设片内RAM 30H 单元的内容为40H;片内RAM 40H 单元的内容为l0H;片内RAM l0H 单元的内容为00H;(Pl)=0CAH。
第3章汇编指令.ppt
这两条指令均表示程序在当前位置处原地“踏步”。
5、“ * ”处于汇编语句中的第一列时,表示该行 为注释语句。 “ ;”之后的内容为注释。如:
*为日后的阅读提供方便而加注释* LDA #$5A ;传数指令
§3.1 M68HC08汇编语言的相关约定
6、M68HC08指令系统中的操作数多数为8位,但可 以通过在字节数前面加“>”的方法将其扩展为16位。
TAX ;A→X TXA ;X→A
§3.2 M68HC08寻址方式
3.2.2 立即寻址方式(IMM) 立即寻址方式中,操作数包含在操作码的后继字符 中,立即寻址指令多为2个字节,第一字节为操作码, 第二字节为操作数。 LDA #%01011010 ;%01011010→A ADD #$30 ; (A+$30)→A ADC #$30 ; (A+$30+C)→A AND #$FF ; (A∧$FF)→A LDHX #$8030 ;$8030→H:X中,80→H,30→X
移一位。
§3.2 M68HC08寻址方式
3.2.7 堆栈寻址方式
(2) 16偏移量堆栈寻址
LDA $0110,SP ; (SP+0110H)→A
ADD $0120,SP AND $0130,SP
; A+(SP+0120H)→A ; A∧(SP+0123H)→A
§3.2 M68HC08寻址方式
3.2.8 存储器到存储器寻址 指令格式:MOV 源操作数地址,目的操作数地址 (1)立即寻址到直接寻址(IMD)
LDA $0110,X ; (H:X+$0110)→A INC $0110,X ;(H:X+$0110)+1→(H:X+$0110) 变址寻址方式中三种方式都可以访问64K字节空间, 但汇编后的指令有长短,速度有快慢。无偏移量指 令最短,速度最快,扩展寻址方式指令最长,速度 最慢。
汇编语言的所有指令
汇编语言的所有指令数据传送指令集MOV功能: 把源操作数送给目的操作数语法: MOV 目的操作数,源操作数格式: MOV r1,r2MOV r,mMOV m,rMOV r,dataXCHG功能: 交换两个操作数的数据语法: XCHG格式: XCHG r1,r2 XCHG m,r XCHG r,mPUSH,POP功能: 把操作数压入或取出堆栈语法: PUSH 操作数POP 操作数格式: PUSH r PUSH M PUSH data POP r POP mPUSHF,POPF,PUSHA,POPA功能: 堆栈指令群格式: PUSHF POPF PUSHA POPALEA,LDS,LES功能: 取地址至寄存器语法: LEA r,m LDS r,m LES r,mXLAT(XLATB)功能: 查表指令语法: XLAT XLAT m算数运算指令ADD,ADC功能: 加法指令语法: ADD OP1,OP2 ADC OP1,OP2格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data影响标志: C,P,A,Z,S,OSUB,SBB功能:减法指令语法: SUB OP1,OP2 SBB OP1,OP2格式: SUB r1,r2 SUB r,m SUB m,r SUB r,data SUB m,data影响标志: C,P,A,Z,S,OINC,DEC功能: 把OP的值加一或减一语法: INC OP DEC OP格式: INC r/m DEC r/m影响标志: P,A,Z,S,ONEG功能: 将OP的符号反相(取二进制补码)语法: NEG OP格式: NEG r/m影响标志: C,P,A,Z,S,OMUL,IMUL功能: 乘法指令语法: MUL OP IMUL OP格式: MUL r/m IMUL r/m影响标志: C,P,A,Z,S,O(仅IMUL会影响S标志)DIV,IDIV功能:除法指令语法: DIV OP IDIV OP格式: DIV r/m IDIV r/mCBW,CWD功能: 有符号数扩展指令语法: CBW CWDAAA,AAS,AAM,AAD功能: 非压BCD码运算调整指令语法: AAA AAS AAM AAD影响标志: A,C(AAA,AAS) S,Z,P(AAM,AAD)DAA,DAS功能: 压缩BCD码调整指令语法: DAA DAS影响标志: C,P,A,Z,S位运算指令集AND,OR,XOR,NOT,TEST功能: 执行BIT与BIT之间的逻辑运算语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data NOT r/m 影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位SHR,SHL,SAR,SAL功能: 移位指令语法: SHR r/m,data/CL SHL r/m,data/CL SAR r/m,data/CL SAL r/m,data/CL影响标志: C,P,Z,S,OROR,ROL,RCR,RCL功能: 循环移位指令语法: ROR r/m,data/CL ROL r/m,data/CL RCR r/m,data/CL RCL r/m,data/CL 影响标志: C,P,Z,S,O程序流程控制指令集CLC,STC,CMC功能: 设定进位标志语法: CLC STC CMC标志位: CCLD,STD功能: 设定方向标志语法: CLD STD标志位: DCLI,STI功能: 设定中断标志语法: CLI STI标志位: ICMP功能: 比较OP1与OP2的值语法: CMP r/m,r/m/data标志位: C,P,A,Z,OJMP功能: 跳往指定地址执行语法: JMP 地址JXX功能: 当特定条件成立则跳往指定地址执行语法: JXX 地址注:A: ABOVE,当C=0,Z=0时成立B: BELOW,当C=1时成立C: CARRY,当弁时成立CXZ: CX寄存器的值为0(ZERO)时成立E: EQUAL,当Z=1时成立G: GREATER(大于),当Z=0且S=0时成立L: LESS(小于),当S不为零时成立N: NOT(相反条件),需和其它符号配合使用O: OVERFLOW,O=1时成立P: PARITY,P=1时成立PE: PARITY EVEN,P=1时成立PO: PARITY ODD,P=0时成立S: SIGN,S=1时成立Z: ZERO,Z=1时成立LOOP功能: 循环指令集语法: LOOP 地址LOOPE(Z)地址LOOPNE(Z) 地址标志位: 无CALL,RET功能: 子程序调用,返回指令语法: CALL 地址RET RET n标志位: 无INT,IRET功能: 中断调用及返回指令语法: INT n IRET标志位: 在执行INT时,CPU会自动将标志寄存器的值入栈,在执行IRET时则会将堆栈中的标志值弹回寄存器字符串操作指令集MOVSB,MOVSW,MOVSD功能: 字符串传送指令语法: MOVSB MOVSW MOVSD标志位: 无CMPSB,CMPSW,CMPSD功能: 字符串比较指令语法: CMPSB CMPSW CMPSD标志位: C,P,Z,S,OSCASB,SCASW功能: 字符串搜索指令语法: SCASB SCASW标志位: C,P,Z,S,OLODSB,LODSW,STOSB,STOSW功能: 字符串载入或存贮指令语法: LODSB LODSW STOSB STOSW标志位: 无REP,REPE,REPNE功能: 重复前缀指令集语法: REP 指令S REPE 指令S REPNE 指令S标志位: 依指令S而定对于IBM PC机它有它的指令系统,其中包括:数据传送指令、串处理指令、算术指令、控制移动指令、逻辑指令、处理机控制指令。
第三章MCS51系列单片机指令系统及汇编语言程序设计
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)
大学课件MCS51单片机指令系统与汇编语言程序设计
ANL C, P ; (C)← (C)∧(P)
其中:P是PSW的第0位,C是PSW的第7位。
(4)字节符号地址(字节名称)加位序号的形式。对于部分特 殊功能寄存器(如状态标志寄存器PSW),还可以用其字节名 称加位序号形式来访问某一位。AC 如:
定义:操作数存放在MCS-51内部的某个工作寄存器Rn (R0~R7)或部分专用寄存器中,这种寻址方式称为 寄存器寻址。
特点:由指令指出某一个寄存器的内容作为操作数。 存放操作数的寄存器在指令代码中不占据单独的一个 字节,而是嵌入(隐含)到操作码字节中。
寻址范围:四组通用寄存器Rn(R0~R7)、部分专用 寄存器( A, B, DPTR, Cy )。
伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制 信息,不产生可执行的目标代码,是CPU不能执行的指令。
(1)定位伪指令ORG
格式:ORG n
其中:n通常为绝对地址,可以是十六进制数、标号或表达式。
功能:规定编译后的机器代码存放的起始位置。在一个汇编 语言源程序中允许存在多条定位伪指令,但每一个n值都应和前
2.2.2 直接寻址
定义:将操作数的地址直接存放在指令中,这种寻址方式称为 直接寻址。 特点:指令中含有操作数的地址。该地址指出了参与操作的数 据所在的字节单元地址或位地址。计算机执行它们时便可根据 直接地址找到所需要的操作数。
寻址范围:ROM、片内RAM区、SFR和位地址空间。P42
2.2.3 寄存器寻址
定义:指令中给出的操作数是一个可单独寻址的位地址,这种寻址 方式称为位寻址方式。
特点:位寻址是直接寻址方式的一种,其特点是对8位二进制数中 的某一位的地址进行操作。
寻址范围:片内RAM低128B中位寻址区、部分SFR(其中有83位 可以位寻址)。
MIPS指令系统和汇编语言
MIPS指令系统和汇编语言MIPS(Microprocessor without Interlocked Pipeline Stages)指令系统,是一种以RISC(Reduced Instruction Set Computer,精简指令集计算机)为基础的处理器架构。
作为一种广泛应用于嵌入式系统和计算机组成的指令集架构,MIPS指令系统以其简洁高效的特性而受到广泛关注和应用。
一、MIPS指令系统概述MIPS指令系统的设计目标之一是提高处理器的性能,并降低设计的复杂性。
它采用了统一的指令格式,包括操作码、源操作数以及目的操作数等字段,使得指令的译码和执行过程更加高效。
此外,MIPS的指令集还支持延迟槽、流水线和分支延迟等特性,以进一步提升指令执行的效率。
二、MIPS指令格式MIPS指令格式遵循统一的规则,包括三种基本类型的指令格式:R 型、I型和J型指令。
R型指令主要用于寄存器之间的操作,包括算术运算、逻辑运算等;I型指令用于立即数和寄存器之间的操作,涵盖了数据传输、分支跳转等功能;J型指令主要用于无条件跳转。
三、MIPS指令编码和寻址方式MIPS指令采用固定长度的指令编码格式,使得指令的解析和处理更加高效。
在寻址方面,MIPS支持多种寻址方式,包括立即寻址、寄存器寻址和间接寻址等。
这些灵活的寻址方式使得MIPS指令更加适用于不同的计算需求。
四、MIPS汇编语言MIPS汇编语言是一种用于编写MIPS指令的低级语言。
它是一种基于文本的表示形式,使用助记符来表示不同的指令和操作。
MIPS汇编语言具有简单易学的特性,更加接近底层硬件的工作原理,使得程序员可以更加精准地控制和优化程序的执行过程。
五、MIPS指令系统的应用由于MIPS指令系统的优越性能和灵活性,它被广泛应用于各种领域。
在嵌入式系统中,MIPS处理器可以实现高性能和低功耗的设计,广泛应用于智能手机、路由器、电视机等设备中。
在计算机组成和操作系统领域,MIPS指令系统被用于讲解和研究计算机的工作原理和底层机制。
汇编语言第3章 指令系统和寻址方式
5.寄存器相对寻址方式(register relative addressing)
EA=基址(base) 或变址( index)+偏移量 (displacement)
基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段
(SI) 物理地址=(DS)*16+(BX)+displacement
(DI) =(SS)*16+(BP)+ (SI)+displacement (DI)
例:mov AX,ARRAY[BX][DI] (DS)=1000H,(BX)=1200H, (DI)=1000H, ARRAY=1000H 物理地址=DS*16+(BX)+(DI)+ARRAY =DS*16+1200+1000+1000=13200H 若:(13200)=34H,(13201)=12H 则,(AX)=1234H 允许段超越。 例:mov AL,ES:ARRAY[BX][DI] 用途:处理成组数据(举例说明)
2.段内间接寻址(intrasegment indirect addressing) (IP)新=EA=寄存器或存储单元的内容 寄存器:所有寄存器寻址方式可用的寄存器 存储单元:所有存储单元寻址方式均适用 例:JMP SI (IP)=(SI) JMP WORD PTR VAR或简写JMP VAR (DS)=1000H,VAR=2000H 存储单元的物理地址=(DS)*16+VAR=12000H (12000H)=1234H 则,(IP)新=1234H
4.寄存器间接寻址方式(register indirect addressing)
EA=基址(base) 或变址( index) 基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段 (SI) 物理地址=(DS)*16+(BX) (DI) =(SS)*16+(BP)
汇编语言程序设计_第3章 80x86指令系统
3.3.2 算术指令
1. 加法
一般形式:
ADD dest, src ; dest = dest + src
ADC dest, src ; dest = dest + src + CF
INC
dest
; dest = dest + 1
语法格式:
ADD reg/mem, reg/mem/imm
ADC reg/mem, reg/mem/imm
movsx ax, al ; 等价于cbw movsx eax, ax ; 等价于cwde movsx eax, al ; 等价于顺序执行cbw与cwde
2019/8/26
80x86汇编语言程序设计
3.3.1 数据传送指令
(3)MOVZX 一般形式: MOVZX dest, src ; src零扩展为dest;386新增 语法格式: MOVZX reg16, reg8/mem8 MOVZX reg32, reg8/mem8/reg16/mem16
2019/8/26
80x86汇编语言程序设计
3.3.1 数据传送指令
5. 堆栈操作指令
80x86系统的堆栈具有如下特点: 堆栈是在内存的堆栈段中,具有“先进后出”的特点。 堆栈只有一个出入口,即当前栈顶。当堆栈为空时,栈顶和栈底指向同一内存单
元。 堆栈有两个基本操作:PUSH(进栈)和POP(出栈)。PUSH操作使栈顶向低地
INC
reg/mem
对标志位的影响:
ADD、ADC:按一般规则影响CF、OF、SF和ZF。 INC:不影响CF,其它同ADD。 说明:ADD与ADC的2个操作数必须类型匹配,且不能同时是内存操作数。
2019/8/26
