微机原理汇编常用指令

合集下载

微机原理常用命令

微机原理常用命令

一、数据传输指令它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。

1. 通用数据传送指令MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP 交换32位寄存器里字节的顺序XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加.( 结果在第一个操作数里)XLAT 字节查表转换.── BX 指向一张256 字节的表的起点, AL 为表的索引值(0-255,即0-FFH); 返回AL 为查表结果. ( [BX+AL]->AL )2. 输入输出端口传送指令.IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器)输入输出端口由立即方式指定时, 其范围是0-255; 由寄存器DX 指定时,其范围是0-65535.3. 目的地址传送指令.LEA 装入有效地址.例: LEA DX,string ;把偏移地址存到DX.LDS 传送目标指针,把指针内容装入DS.例: LDS SI,string ;把段地址:偏移地址存到DS:SI.LES 传送目标指针,把指针内容装入ES.例: LES DI,string ;把段地址:偏移地址存到ES:DI.LFS 传送目标指针,把指针内容装入FS.例: LFS DI,string ;把段地址:偏移地址存到FS:DI.LGS 传送目标指针,把指针内容装入GS.例: LGS DI,string ;把段地址:偏移地址存到GS:DI.LSS 传送目标指针,把指针内容装入SS.例: LSS DI,string ;把段地址:偏移地址存到SS:DI.4. 标志传送指令.LAHF 标志寄存器传送,把标志装入AH.SAHF 标志寄存器传送,把AH内容装入标志寄存器.PUSHF 标志入栈.POPF 标志出栈.PUSHD 32位标志入栈.POPD 32位标志出栈.二、算术运算指令ADD 加法.ADC 带进位加法.INC 加1.AAA 加法的ASCII码调整.DAA 加法的十进制调整.SUB 减法.SBB 带借位减法.DEC 减1.NEC 求反(以0 减之).CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).AAS 减法的ASCII码调整.DAS 减法的十进制调整.MUL 无符号乘法.IMUL 整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM 乘法的ASCII码调整.DIV 无符号除法.IDIV 整数除法.以上两条,结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).AAD 除法的ASCII码调整.CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去) CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去) 三、逻辑运算指令AND 与运算.or 或运算.XOR 异或运算.NOT 取反.TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL 逻辑左移.SAL 算术左移.(=SHL)SHR 逻辑右移.SAR 算术右移.(=SHR)ROL 循环左移.ROR 循环右移.RCL 通过进位的循环左移.RCR 通过进位的循环右移.以上八种移位指令,其移位次数可达255次.移位一次时, 可直接用操作码. 如SHL AX,1.移位>1次时, 则由寄存器CL给出移位次数.如MOV CL,04SHL AX,CL四、串指令DS:SI 源串段寄存器:源串变址.ES:DI 目标串段寄存器:目标串变址.CX 重复次数计数器.AL/AX 扫描值.D标志0表示重复操作中SI和DI应自动增量; 1表示应自动减量.Z标志用来控制扫描或比较操作的结束.MOVS 串传送.( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )CMPS 串比较.( CMPSB 比较字符. CMPSW 比较字. )SCAS 串扫描.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS 装入串.把源串中的元素(字或字节)逐一装入AL或AX中.( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. )STOS 保存串.是LODS的逆过程.REP 当CX/ECX<>0时重复.REPE/REPZ 当ZF=1或比较结果相等,且CX/ECX<>0时重复.REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0时重复.REPC 当CF=1且CX/ECX<>0时重复.REPNC 当CF=0且CX/ECX<>0时重复.五、程序转移指令1>无条件转移指令(长转移)JMP 无条件转移指令CALL 过程调用RET/RETF过程返回.2>条件转移指令(短转移,-128到+127的距离内)( 当且仅当(SF XOR OF)=1时,OP1<OP2 )JA/JNBE 不小于或不等于时转移.JAE/JNB 大于或等于转移.JB/JNAE 小于转移.JBE/JNA 小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z).JG/JNLE 大于转移.JGE/JNL 大于或等于转移.JL/JNGE 小于转移.JLE/JNG 小于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ 等于转移.JNE/JNZ 不等于时转移.JC 有进位时转移.JNC 无进位时转移.JNO 不溢出时转移.JNP/JPO 奇偶性为奇数时转移.JNS 符号位为"0" 时转移.JO 溢出转移.JP/JPE 奇偶性为偶数时转移.JS 符号位为"1" 时转移.3>循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z=1时循环.LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.JCXZ CX为零时转移.JECXZ ECX为零时转移.4>中断指令INT 中断指令INTO 溢出中断IRET 中断返回5>处理器控制指令HLT 处理器暂停, 直到出现中断或复位信号才继续.WAIT 当芯片引线TEST为高电平时使CPU进入等待状态.ESC 转换到外处理器.LOCK 封锁总线.NOP 空操作.STC 置进位标志位.CLC 清进位标志位.CMC 进位标志取反.STD 置方向标志位.CLD 清方向标志位.STI 置中断允许位.CLI 清中断允许位.六、伪指令DW 定义字(2字节).PROC 定义过程.ENDP 过程结束.SEGMENT 定义段.ASSUME 建立段寄存器寻址.ENDS 段结束.END 程序结束.七、处理机控制指令:标志处理指令CLC(进位位置0指令)CMC(进位位求反指令)STC(进位位置为1指令)CLD(方向标志置1指令)STD(方向标志位置1指令)CLI(中断标志置0指令)STI(中断标志置1指令)NOP(无操作)HLT(停机)WAIT(等待)ESC(换码)LOCK(封锁)。

微机原理-常用指令用法

微机原理-常用指令用法

微机原理-常⽤指令⽤法序号指令功能和特点例程1 例程2 例程3 1 MOV 参与传送的操作数有:通⽤寄存器,段寄存器,存储单元,⽴即数四类。

有有互相之间只要不违背以下原则即可进⾏传送:1.源,⽬的操作数长度⼀致2.源,⽬的操作数不能同为存储单元3.CS不能作为⽬的操作数4.段寄存器只能通过通⽤寄存器或存储单元进⾏赋值。

5.⽴即数不能作为⽬的操作数。

2 PUSH ⼀定是字操作(不能PUSH字节)有PUSH AX,PUSH DS,PUSH [0000H] ;【POP对等】SP <‐ SP‐2,字存⼊SP指向的地址(⾼位在⾼地址)操作数可以为通⽤寄存器,段寄存器或存储单元,CS可PUSH不可POP3 POP 与PUSH对等4 XCHG Xchg dst,src可在通⽤寄存器间,通⽤寄存器和存储单元间进⾏。

不能⽤段寄存器和⽴即数。

XCHG [1200H],DXXCHG AL,CL5 XLAT 直接写出XLAT就⾏,在调⽤该指令前,需将BX初始化为数据表的⾸地址,AL初始化为希望取得的数据在数据表中的序号。

在调⽤该指令后,AL中的内容被赋值为DS:[BX][AL]的内容。

6 LEA LEA BX,1000H[SI],执⾏后BX = SI+1000H有LEA BX,TABLEMOV BX,OFFSET TABLE,以上两条等价7 LDS 指针送寄存器和DS指令LDS dst,src将SRC指定的连续4个存储单元的内容传送到DS和DST指向的寄存器,⾼字送到DS,低字送到DST假设DS=3200H,(33550H)=3A78H,(33552H)=1998HLDS SI,[1550H]后,SI = 3A78H,DS = 1998H8 LES 类同LDS,不同的是DS改成了ES9 SAHF 将AH的内容送标志寄存器的低8位10 LAHF 把标志寄存器的低8位送⼊AH11 PUSHF 将16位标志寄存器内容压⼊堆栈12 POPF 从堆栈弹出字数据送⼈标志寄存器13 ADD Dst可以为存储单元或通⽤寄存器有 Src可为存储单元,通⽤寄存器或⽴即数,不能同时为存储单元Add ax,1234hAdd [1234h],ax14 ADC Adc dst,srcDst = dst+src+cf15 INC Inc dstDst为通⽤寄存器或存储单元影响OF,SF,ZF,AF,PF,但不影响CF。

微机原理指令小结

微机原理指令小结

8086CPU指令小结所有指令:(1)立即数不能作为目的操作数。

(2)不能在2个存储单元之间直接进行操作(串操作除外)。

(3)MOV指令和堆栈指令是惟一能对段寄存器进行操作的指令。

(4)源和目的操作数的数据类型必须匹配,都是8位,或都是16位。

(5)CS 、IP不能直接作为操作数。

(6)指令中至少要有一项明确说明传送的是字节还是字,如果没有,可通过PTR进行设置。

一、传送指令(1)6种指令:通用传送指令、堆栈操作指令、交换操作指令、I/O操作指令、目的地址传送指令和标志传送指令。

(2)对标志位的影响:除标志传送(SAHF、POPF)外,均不影响标志位。

(3)操作数表示方法:立即数——data,存储器单元地址——mem,寄存器——reg,段寄存器——segreg。

1. 通用传送指令:完成数据传送(1)指令格式:MOV OPRD1,OPRD2 ;[目的操作数OPRD1]←[源操作数OPRD2] (2)源OPRD2:data、mem、reg、segreg。

(3)目的OPRD1:mem、reg、segreg。

(4)通用传送指令MOV和堆栈指令是唯一允许以段寄存器(代码段寄存器CS和指令指针IP除外,即CS 、IP不能作为直接操作数)作为操作数的指令,不允许通过MOV 指令直接以立即数方式给段寄存器赋值,不允许直接在两个段寄存器之间直接进行传送。

(5)8位/16位操作。

2. 堆栈操作指令:将数据压入/弹出堆栈(1)指令格式:入栈:PUSH OPRD;先修改堆栈指针SP-2,然后将数据压入堆栈。

;SP =SP-1,[SP]=操作数高8位;SP =SP-1,[SP]= 操作数低8位。

出栈:POP OPRD;先将数据弹出堆栈,然后修改堆栈指针SP+2。

;(操作数低8位)←[SP],SP =SP+1;(操作数高8位)←[SP],SP =SP+1。

(2)操作数:mem、reg、segreg。

操作数不能是立即数data。

riscv汇编语言指令

riscv汇编语言指令

riscv汇编语言指令
RISC-V(精简指令集计算机)是一种基于开放标准的指令集架
构(ISA),它的汇编语言指令集包括以下几类指令:
1. R 型指令,R 型指令用于执行寄存器之间的操作,包括算术
运算和逻辑运算。

例如,add、sub、and、or、xor 等。

2. I 型指令,I 型指令用于执行立即数和寄存器之间的操作,
包括加载、存储和分支操作。

例如,addi、lw、sw、beq 等。

3. S 型指令,S 型指令用于执行立即数偏移量和寄存器之间的
存储操作。

例如,sb、sh、sw。

4. B 型指令,B 型指令用于执行分支操作。

例如,beq、bne、blt、bge。

5. U 型指令,U 型指令用于执行无条件跳转和加载立即数操作。

例如,lui、auipc。

6. J 型指令,J 型指令用于执行无条件跳转操作。

例如,jal。

以上是 RISC-V 汇编语言指令的一些基本类型,每种类型的指令都有特定的操作码和功能码,通过这些指令可以完成对寄存器、内存和控制流的操作。

除了基本指令外,RISC-V 还支持特权指令、浮点指令和原子操作等扩展指令集,以满足不同应用领域的需求。

希望这些信息能够帮助你对 RISC-V 汇编语言指令有一个初步的了解。

微机原理指令汇总

微机原理指令汇总

我现将指令系统中各种助记符得英文全名写出来,各种助记符得记忆就会变得很简单o(∩_∩)o、、、在这之前,先说一下寄存器:数据寄存器分为:AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有得I/O指令都使用这一寄存器与外界设备传送数据、BH&BL=BX(base):基址寄存器,常用于地址索引;CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)与串处理指令中用作隐含得计数器、DH&DL=DX(data):数据寄存器,常用于数据传递。

她们得特点就是,这4个16位得寄存器可以分为高8位: AH, BH, CH, DH、以及低八位:AL,BL,CL,DL。

这2组8位寄存器可以分别寻址,并单独使用。

另一组就是指针寄存器与变址寄存器,包括:SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前得堆栈位置;BP(Base Pointer):基址指针寄存器,可用作SS得一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目得变址寄存器,可用来存放相对于ES 段之目得变址指针。

指令指针IP(Instruction Pointer)标志寄存器FR(Flag Register)OF(overflow flag)DF(direction flag)CF(carrier flag)PF(parity flag)AF(auxiliary flag)ZF(zero flag)SF(sign flag)IF(interrupt flag)TF(trap flag)段寄存器(Segment Register)为了运用所有得内存空间,8086设定了四个段寄存器,专门用来保存段地址: CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。

微机原理8086汇编语言

微机原理8086汇编语言

微机原理8086汇编语言微机原理和8086汇编语言是计算机科学与技术领域中的重要基础知识,对于理解计算机的运行原理和编程开发具有关键作用。

本文将全面介绍微机原理和8086汇编语言的基本概念、功能特点以及应用实践。

一、微机原理概述微机原理是指微型计算机的构成、工作原理、体系结构和外围设备等的基本原理。

微机由中央处理器(CPU)、存储器和输入输出设备等组成,其内部实现了数据的存储和处理,并能够与外部环境进行交互。

微机原理的研究与应用对于计算机硬件的设计和控制至关重要。

二、8086汇编语言介绍8086汇编语言是在微机原理基础上发展起来的一种低级程序设计语言。

它以机器指令的形式直接对CPU发出控制命令,实现数据处理和操作。

8086汇编语言具有直观、高效的特点,可以对计算机内部各种硬件资源进行精细控制,实现复杂的算法和功能。

三、8086汇编语言的基本语法8086汇编语言的基本语法包括指令、寻址方式和操作数等。

指令通常由操作码和操作数组成,用于执行特定的操作。

寻址方式指定操作数在内存中的位置,可以是直接寻址、寄存器间接寻址、立即数寻址等多种方式。

操作数表示要进行操作的数据,可以是寄存器、内存单元或立即数。

四、8086汇编语言的常用指令8086汇编语言提供了丰富的指令集,包括数据传输指令、算术运算指令、逻辑运算指令、条件转移指令、无条件转移指令等。

通过这些指令的组合和调用,可以实现各种复杂的功能和处理需求。

五、8086汇编语言的应用实践8086汇编语言广泛应用于嵌入式系统设计、驱动程序开发、操作系统编程以及性能优化等领域。

在嵌入式领域,汇编语言可以直接操作硬件资源,实现高效的数据处理和控制;在操作系统编程中,汇编语言可以直接访问操作系统内核,实现底层功能的扩展和优化。

六、8086汇编语言的优势与不足8086汇编语言具有高效、灵活的优势,可以直接操作硬件资源和内存,实现高性能的程序。

然而,汇编语言的开发和调试困难,可读性低,维护成本高,对程序员的要求较高。

汇编写循环指令

汇编写循环指令

汇编写循环指令汇编语言中的循环指令是编程过程中经常用到的重要指令之一。

通过循环指令,程序可以重复执行一段代码块,实现特定的功能。

本文将介绍常见的汇编循环指令及其使用方法。

一、汇编语言中的循环指令在汇编语言中,通常有两种类型的循环指令:有条件循环和无条件循环。

有条件循环根据特定条件来判断是否继续循环执行,而无条件循环则无需条件,每次都会执行。

1. 有条件循环指令有条件循环指令主要有以下几种:(1)Jmp指令:无条件跳转指令,可以用于循环体的结尾,使程序跳转到循环的开始位置,实现循环执行。

(2)Je、Jne指令:用于判断两个数是否相等,其中Je指令表示相等时跳转,Jne指令表示不相等时跳转。

(3)Jg、Jge、Jl、Jle指令:用于判断两个数的大小关系,其中Jg 指令表示大于时跳转,Jge指令表示大于等于时跳转,Jl指令表示小于时跳转,Jle指令表示小于等于时跳转。

2. 无条件循环指令无条件循环指令主要有以下几种:(1)Jcxz指令:判断寄存器Cx是否为0,如果为0,则跳转到指定位置。

(2)Loop指令:循环指令,根据寄存器Cx或者寄存器Al的值来决定是否跳转到指定位置。

二、汇编循环指令的使用方法在使用汇编循环指令时,首先需要设置循环计数器,一般情况下使用寄存器Cx或者寄存器Al作为循环计数器。

然后在循环体开始之前,需要设置循环的终止条件,并将循环计数器赋初值。

下面以用寄存器Cx作为循环计数器为例,介绍汇编循环指令的使用方法:```MOV CX, 10 ; 将10赋值给寄存器Cx,表示循环10次LOOP_START: ; 循环的开始标签; 循环体代码LOOP LOOP_START ; 根据Cx的值判断是否继续循环,继续跳转到LOOP_START标签```以上代码中,通过MOV指令将10赋值给寄存器Cx,表示需要循环10次。

接着使用LOOP_START标签来标记循环的开始位置,循环体代码写在标签下方。

常用的汇编指令与技巧(收藏)

常用的汇编指令与技巧(收藏)

常⽤的汇编指令与技巧(收藏)1.数据传送指令:movmove r1,r2 /*r1=r2*/move r1,#4096 /*r1=4096*/2.⼤范围的地址读取指令:ldrldr r1,=0x123456789 /*r1=0x123456789*/ldr r1,=label /*获取绝对地址,即label的地址*/label: ……3.内存访问指令(当ldr后⾯没有=号时为内存读取指令)读取指令:ldrldr r1 ,[r2,#4] /*将内存地址为r2+4的数据读取到r1中,相当于C语⾔中的*操作*/ldr r1,[r2],#4 /*将内存地址为r2的数据读取到r1中,再将地址加4,r2=r2+4*/ldr pc,_irq /*pc=*(_irq)将标号中的内容放⼊pc中_irq: .word do_swi存储指令:strstr r1 ,[r2,#4] /*将r1的值存⼊地址为r2+4的内存中*/str r1,[r2],#4 /*将r1的值存⼊地址为r2的内存中,再将地址加4,r2=r2+4*/4.批量内存访问指令ldm,stm格式:ldm {cond} <addresing_mode> <rn> {!} <register list> {^} stm{cond} <addresing_mode> <rn> {!} <register list> {^}格式说明:1){cond}:表⽰指令的执⾏条件,根据cpsr寄存器中的条件标志位决定是否执⾏该条指令,每条ARM指令包含4bit的条件码域,可以定义16个执⾏条件,具体如下表:2)<addresing_mode>表⽰地址变化模式,具体如下:3)<rn> 中保存内存的地址,如果后⾯加上!,指令执⾏完成后,rn的值会更新,等于下⼀个内存的地址,否则保持初始值。

微机原理与接口技术除法指令可编辑全文

微机原理与接口技术除法指令可编辑全文

X*Y,结果在DX:AX中
将乘积存在BX:CX中
将符号扩展后的Z加到 BX:CX中的乘积中去
• SUB CX, 540; • SBB BX, 0; • MOV AX, V; • CWD; • SUB AX, CX; • SBB DX, BX; • MOV BX,X • IDIV BX;
从BX:CX中减去540
格式: IDIV SRC
操作与DIV类似。商及余数均为有符号数,且余数符 号总是与被除数符号相同。
注意: 对于DIV/IDIV指令 • AX(DX:AX)为隐含的被除数寄存器。 • AL(AX)为隐含的商寄存器。 • AH(DX)为隐含的余数寄存器。 • SRC不能为立即数。 • 对所有标志位均无定义。
微机原理与接口技术除法指令
✓进行除法时:16位/8位→8位商,8位余数 32位/16位→16位商,16位余数
✓对被除数、商及余数存放有如下规定:
被除数
商 余数
16位/8位 AX
AL AH 字节操作
32位/16位 DX:AX AX DX 字操作
4.1 除法指令——无符号数的除法指令
格式: DIV SRC
操作:字节操作 (AL) (AX) / (SRC) 的商
字操作
(AH) (AX) / (SRC) 的余数 (AX) (DX, AX) / (SRC) 的商
(DX) (DX, AX) / (SRC) 的余数
例: DIV CL DIV WORD PTR[BX]
4.2 除法指令——有符号数的除法指令
最高位 CF
最低位 0
(a)算术/逻辑左移SAL/SHL
最高位 CF
最低位
(b)算术右移SAR
最高位
CF 0

汇编语言命令大全

汇编语言命令大全

1 汇编语言命令大全汇编命令大全<---->MOV(MOVe)传送指令P28 PUSH 入栈指令P32POP 出栈指令P33XCHG(eXCHanG)交换指令P34XLAT(TRANSLATE)换码指令P34LEA (Load Effective Address)有效地址送寄存器指令P35 LDS(Load DS with pointer)指针送寄存器和DS指令P35 LES(Load ES with pointer)指针送寄存器和ES指令P35 LAHF(Load AH with Flags)标志位送AH指令P36 SAHF(Store AH into Flgs)AH送标志寄存器指令P36 PUSHF(PUSH the Flags)标志进栈指令P36POPF(POP the Flags)标志出栈指令P37ADD 加法指令P38ADC 带进位加法指令P39INC 加1指令P39SUB(SUBtract)不带借位的减法指令P40SBB(SuVtrach with borrow)带借位的减法指令P40DEC(DECrement)减1指领P41NEG(NEGate)求补指令P41CMP(CoMPare)比较指令P42MUL(unsinged MULtiple)无符号数乘法指令P46IMUL(sIgned MUL tiple)有符号数乘法指令P46DIV(unsigned DIVide)无符号数除法指令P48IDIV(sIgned DIVide)有符号数除法指令P48CBW(Count Byte to Word)字节转换为字指令P50CWD(Count Word to Doble word)字转换为双字指令P50 DAA 压缩的BCD码加法十进制调整指令P53DAS 压缩的BCD码减法十进制调整指令P53AAA 非压缩的BCD码加法十进制调整指令P54AAS 非压缩的BCD码加法十进制调整指令P54AND 逻辑与指令P54OR 逻辑或指令P55XOR 逻辑异或指令P56NOT 逻辑非指令P56TEST 测试指令P57SHL(SHift logical Letf)逻辑左移指令P57SHR(SHift logical Right)逻辑右移指令P57ROL(Rotate Left )循环左移指令P58ROR(Rotate Right)循环右移指令P58RCL(Rotate Left through Carry)带进位循环左移P58 RCR(Rotate Right through Carry)带进位循环左移P58 MOVS(MOVe String)串传送指令P58STOS(STOre into String)存入串指令P60LODS(LOad from string)从串取指令P60REP(REPeat)重复操作前缀P61CLD(CLear Direction flag)清除方向标志指令P61STD(SeT Direction flag)设置方向标志指令P61CMPS(CoMPare String)串比较指令P62SCAS(SCAn String)串扫描指令P63REPE/REPZ(REPeat while Equal/Zero)相等/为零时重复操作前缀P63REPNE/REPNZ(REPeat while Not Equal/Zero)不相等/不为零进重复前缀IN(INput)输入指令P65OUT(OUTput)输出指令P65JMP(JuMP)无条件转移指令P66JZ,JNZ,JS,JNS,JO,JNO,JP,JNP,JB,JNB,JBE,JNBE,JL,JNL,JLE,JNLE,JCXZ 条件转移指令P67LOOP 循环指令P70LOOPZ/LOOPE 为零/相等时循环指令P70LOOPNZ/LOOPNE 不为零/不相等时循环指令P70CALL 子程序调用指令P71RET(RETun)子程序返回指令P72CLC(CLear Carry)进位位置0指令P77CMC(CoMplement Carry)进位位求反指令P77SRC(SeT Carry)进位位置1指令P77NOP(No OPeretion)无操作指令P77HLT(HaLT)停机指令P77OFFSET 返回偏移地址P85SEG 返回段地址P85EQU(=) 等值语句P90PURGE 解除语句P91DUP 操作数字段用复制操作符P93SEGMENT,ENDS 段定义指令P95ASSUME 段地址分配指令P95ORG 起始偏移地址设置指令P96$ 地址计数器的当前值P97PROC,ENDP 过程定义语句P97NAME,TITLE,END 程序开始结束语句P98MACRO,ENDM 宏定义指令P99---------------------------------------------------------------------------------- 作者:wutoyou-- 发布时间:2004-2-3 14:42:45--段内直接短跳转JMP SHORT OPR段内直接近转移JMP NEAR PTR OPR段内间接转移JMP WORD PTR OPR 段间直接转移JMP FAR PTR OPR段间间接转移JMP DWORD PTR OPRJZ OPR //结果为零转移JNZ OPR //结果不为零转移JS OPR //结果为负转移JNS OPR //结果为正转移JO OPR //溢出转移JNO OPR //不溢出转移JP OPR //结果为偶转移JNP OPR //结果为奇转移JC OPR //有进位转移JNC OPR //无进位转移。

微机原理4[1].4逻辑运算及串操作指令

微机原理4[1].4逻辑运算及串操作指令
?源数据串段值为ds偏移地址为si?目的数据串段值为es偏移地址为di?字符串长度字数或字节数使用cx?指令cld使标志df0递增方向指令std使标志df1递减方向?每执行一次串指令自动修改sidi值si1或2di1或2ds
三、位操作指令
可对8位或16位的寄存器或存储器单元中 的内容按位进行操作,包括:
例1:将2000H:1200H地址开始的100个字节 传送到6000H:0000H开始的内存单元中。
MOV AX,2000H MOV DS,AX KKK:MOV AL,[SI] 2000H:1200H MOV [DI],AL MOV AX,6000H 如果不用串操作指令 INC SI MOV ES,AX INC DI MOV SI,1200H DEC CX JNZ KKK MOV DI,0 此处不用 6000H:0000H REP,则: MOV CX,100 KKK: MOVSB CLD DEC CX NEXT:REP MOVSB
(4)测试指令TEST 指令格式: TEST dest,src;dest ∧ src 指令功能: 源操作数和目的操作数的内容执行按位 的逻辑与运算,根据结果置SF、PF、ZF, 且CF=OF=0,而AF位无定义。 dest,src内 容不变。
常用于:
在不改变原来操作数的情况下,检测某一位 或某几位是否为1或为0。 编程时,用在条件转移指令前产生条件。

实现对一串字符或数据的操作
可进行串传送、串比较、串扫描、读串或写 串等操作,串长最多可达64KB

字符串指令的寻址方式只用隐含寻址,源串 固定使用SI,目的串固定使用DI。

指令包含:
REP REPE/REPZ REPNE/REPNZ
MOVS、STOS、LODS CMPS、SCAS

微机原理与接口技术常用指令

微机原理与接口技术常用指令

微原指令一、立即寻址方式所提供的操作数直接包含在指令中。

它紧跟在操作码的后面,与操作码一起放在代码段区域中,如图所示。

例如:MOV CX,2A50H立即寻址方式的指令常用来给寄存器赋初值。

立即数不但可以送到寄存器中,还可以送到一个存储单元(8位)中或两个连续的存储单元(16位)中去。

在所有的指令中,立即数只能作源操作数,不能作目的操作数。

另外要注意,以A~F打头的数字出理在指令中时,前面一定要加一个数字0,以免与其它符号相混淆。

如将立即FF00H 送到AX的指令必须写成如下形式:MOV AX,0FF00H二、寄存器寻址方式在这种寻址方式下,操作数包含在寄存器中,由指令指定寄存器的名称。

对于16位操作数,寄存器可以是AX、BX、CX、DX,SI、D1、SP和BP等。

对于8位操作数,则用寄存器AH、AL、BH、BL、CH、CL、DH和DL。

例如:MOV DX,AXMOV CL,AH注意:源操作数的长度必须与目的操作数一致,否则会出错。

例如,不能将AH寄存器的内容传送到CX中去,尽管CX寄存器放得下AH的内容,但汇编程序不知道将它放到CH还是CL中。

这种寻址方式的优点是:寄存器数量一般在几个到几十个,比存储器单元少很多,因此它的地址码短,从而缩短了指令长度,节省了程序存储空间;另一方面,从寄存器里取数比从存储器里取数的速度快得多,从而提高了指令执行速度。

三、直接寻址方式1.直接寻址方式在IBM PC机中,把操作数的偏移地址称为有效地址EA。

使用直接寻址方式的指令时,存储单元的有效地址直接由指令给出,在它们的机器码中,有效地址存放在代码段中指令的操作码之后。

而该地址单元中的数据总是存放在存储器中,所以必须先求出操作数的物理地址,然后再访问存储器,才能取得操作数。

当采用直接寻址指令时,如果指令中没有用前缀指明操作数存放在哪一段,则默认为使用的段寄存器为数据段寄存器DS,操作数的物理地址=16×DS+EA=10H×DS+EA。

微机原理指令大全

微机原理指令大全

微机原理指令大全微机原理是计算机科学中的重要基础知识,而指令则是微机原理中的核心内容之一。

指令是计算机中的基本操作命令,它直接影响着计算机的运行和执行效率。

本文将为大家详细介绍微机原理中常见的指令,并提供一份完整的指令大全,希望能够帮助大家更好地理解和掌握微机原理中的指令知识。

一、数据传送指令。

数据传送指令是微机原理中最基本的指令之一,它用于将数据从一个地方传送到另一个地方。

常见的数据传送指令包括MOV、LDM、STM等。

这些指令可以实现寄存器之间、寄存器和内存之间、内存和输入输出设备之间的数据传送操作,是计算机程序中不可或缺的一部分。

二、算术运算指令。

算术运算指令用于进行各种数值计算操作,包括加法、减法、乘法、除法等。

常见的算术运算指令有ADD、SUB、MUL、DIV等。

这些指令可以对寄存器和内存中的数据进行各种算术运算,是计算机程序中常用的指令之一。

三、逻辑运算指令。

逻辑运算指令用于进行各种逻辑操作,包括与、或、非、异或等。

常见的逻辑运算指令有AND、OR、NOT、XOR等。

这些指令可以对寄存器和内存中的数据进行逻辑运算,是计算机程序中实现逻辑判断和控制流程的重要指令之一。

四、转移指令。

转移指令用于改变程序的执行顺序,包括无条件转移和条件转移两种。

常见的转移指令有JMP、JZ、JNZ、JC、JNC等。

这些指令可以实现程序的跳转和循环控制,是计算机程序中实现各种复杂逻辑的重要指令之一。

五、比较指令。

比较指令用于比较两个数据的大小关系,常见的比较指令有CMP、TEST等。

这些指令可以对寄存器和内存中的数据进行比较操作,并根据比较结果设置标志位,是实现条件转移和逻辑判断的重要指令之一。

六、输入输出指令。

输入输出指令用于实现计算机与外部设备的数据交换,包括输入数据和输出数据两种操作。

常见的输入输出指令有IN、OUT等。

这些指令可以实现计算机与外部设备之间的数据传输,是计算机程序中实现输入输出功能的重要指令之一。

微机原理与接口技术:加法减法运算指令

微机原理与接口技术:加法减法运算指令

1. 加法运算指令和调正指令ADD,ADC,INC,AAA,DAA(1)不带进位的加法运算指令ADDADD指令完成两个操作数相加,并将结果保存在目的操作数中。

指令格式:ADD OPRD1, OPRD2功能:操作数OPRD1与OPRD2相加,结果保存在OPRD1中。

说明:操作数OPRD1可以是累加器AL或AX,也可以是其它通用寄存器或存储器操作数,OPRD2可以是累加器、其它通用寄存器或存储器操作数,还可以是立即数。

OPRD1和OPRD2不能同时为存储器操作数,不能为段寄存器。

ADD指令的执行对全部6个状态标志位产生影响。

例如:ADD AL, BL ;AL+BL结果存回AL中。

ADD AX, SI ;AX+SI结果存回AX中。

ADD BX, 3DFH ;BX+03DFH结果存回BX中。

ADD DX, DA TA[BP+SI] ;DX与内存单元相加,结果存回DX中。

ADD BYTE PTR[DI], 30H ;内存单元与30H相加,结果存回内存单元中。

ADD [BX], AX ;内存单元[BX]与AX相加,结果存回[BX]中。

ADD [BX+SI], AL ;内存单元与AL相加,结果存回内存单元中。

【例题3-3】求D9H与6EH的和,并注明受影响的标志位状态。

MOV AL, 0D9HMOV BL, 6EHADD AL, BL结果AL=47H,标志位CF=1,PF=1,AF=1,ZF=0,SF=0,OF=0(2)带进位的加法运算指令ADCADC指令完成两个操作数相加之后,再加上Flags的进位标志CF。

CF的值可能为1或0。

指令格式:ADD OPRD1, OPRD2功能:操作数OPRD1与OPRD2相加后,再加上CF的值,结果保存在OPRD1中。

说明:对操作数的要求与ADD指令一样。

例如:ADC AL, BLADC AX, BXADC [DI], 30HADC指令主要用于多字节数的加法运算,以保证低位向高位的进位被正确接收。

微机原理

微机原理

结果=110E 21C8H BX 结果 存放在DX、AX里。 、 里 CX 存放在
AX(低位 低位) 低位 DX(高位 高位) 高位
;DX+BX+CF
位的CF对高 位有贡献, 位的OF无意义 低16位的 对高 位有贡献 低16位的 无意义 高16位运算的 位的 对高16位有贡献 位的 无意义, 位运算的 OF才为整个的 才为整个的OF。 才为整个的
可以用如下程序段实现这种多字节的加法: 可以用如下程序段实现这种多字节的加法:
2012-4-13
5/110
微机原理及应用
吴丽娟
CLC MOV MOV MOV ADD SI, 2000H
清进位位CF ; 清进位位 ; 取第一个数的首地址
AX, [SI] ; 将第一个数的低 位取到 将第一个数的低16位取到 位取到AX ] DI, 3000H ; 取第二个数的首地址
结果放在DI和 去1000H, 结果放在 和DI+1所指的单元中 所指的单元中
2012-4-13
10/110
微机原理及应用
吴丽娟
(2) 带借位的减法指令
SBB在形式和功能上都和 在形式和功能上都和SUB指令类似 只是 指令类似, 在形式和功能上都和 指令类似 只是SBB指令在执行减 指令在执行减 法运算时, 还要减去CF的值 在减法运算中, 的值。 法运算时 还要减去 的值。在减法运算中 CF的值就是两数相 的值就是两数相 减时, 向高位产生的借位, 所以, 在执行减法运算时, 减时 向高位产生的借位 所以 SBB在执行减法运算时 是用被减 在执行减法运算时 数减去减数, 并减去低位字节相减时产生的借位。 数减去减数 并减去低位字节相减时产生的借位。 和带进位位的 加法指令类似, 主要用在多字节减法运算中。 加法指令类似 SBB主要用在多字节减法运算中。例如: 主要用在多字节减法运算中 例如: SBB AX, 2030H ;将AX的内容减去立即数 的内容减去立即数2030H, 并减去进位 的内容减去立即数 ;位CF的值 的值 SBB WORD PTR [DI+2], 1000H ] ; 将DI+2和DI+3所指的两 和 所指的两

汇编跳转指令表

汇编跳转指令表

汇编跳转指令表汇编语言中的跳转指令主要用于控制程序的流程。

以下是一些常见的汇编语言跳转指令及其说明:1. JMP (Jump) - 无条件跳转。

无论目标地址是什么,都会跳转到该地址。

2. JE (Jump if Equal) - 如果两个操作数相等,则跳转。

常与比较指令(CMP)一起使用。

3. JNE (Jump if Not Equal) - 如果两个操作数不相等,则跳转。

常与比较指令(CMP)一起使用。

4. JG (Jump if Greater) - 如果第一个操作数大于第二个操作数,则跳转。

常与比较指令(CMP)一起使用。

5. JGE (Jump if Greater or Equal) - 如果第一个操作数大于或等于第二个操作数,则跳转。

常与比较指令(CMP)一起使用。

6. JL (Jump if Less) - 如果第一个操作数小于第二个操作数,则跳转。

常与比较指令(CMP)一起使用。

7. JLE (Jump if Less or Equal) - 如果第一个操作数小于或等于第二个操作数,则跳转。

常与比较指令(CMP)一起使用。

8. JA (Jump if Above) - 如果无符号运算的结果大于0,则跳转。

常与ADC指令一起使用。

9. JBE (Jump if Below or Equal) - 如果无符号运算的结果小于或等于0,则跳转。

常与SUBB指令一起使用。

10. JS (Jump if Signed) - 如果结果为负,则跳转。

常与ADC指令一起使用。

11. JO (Jump if Overflow) - 如果溢出发生,则跳转。

常与ADC、ADD或SUB指令一起使用。

12. JNP (Jump if Not Parity) - 如果结果没有奇偶校验位,则跳转。

常与ADC指令一起使用。

13. JPO (Jump if Parity) - 如果结果有奇偶校验位,则跳转。

常与ADC指令一起使用。

第3章 微机原理 汇编 朱定华

第3章   微机原理 汇编 朱定华
ADD AL,AH ;AL=0EH,AH=08H MOV AH,0
19
3.1.2 BCD数调整指令
注: 同DAA,AAA的操作数也隐含为AL,且要紧跟加法指 令 AAA调整后的存放规律可理解为调整后的个位数送 AL,十位数(即进位)加到AH中.故执行该指令前AH 应依据前后关系决定是否清0 如:将两个BCD数的ASCII码相加,得到和的ASCII码: MOV AL,35H ; ’5’ ADD AL,39H ; ’9’,AL=6EH MOV AH,0 AAA ;AX=0104H OR AX,3030H ; AX=3134H 即’14’ 20
3.1.2 BCD数调整指令
3.非压缩BCD数乘除法调整指令AAM和AAD
(1)乘法调整 格式: AAM
功能:将AL中小于64H的二进制数变换为非压缩 BCD数送AX 调整规则: AL / 0AH
如:
→ AH(十位),
AL MOD 0AH → AL(个位) MOV AL,63H AAM ;AX=0909H 24
14
3.1.2 BCD数调整指令
1.BCD数加法调整指令DAA和AAA
(1)压缩BCD数加法调整 格式: DAA 功能:将AL中的和调整为正确的压缩BCD数 调整规则: (AL&0FH)>9或AF=1,则AL加6;
(AL&0F0H)>90H或CF=1,则AL加60H.
15
3.1.2 BCD数调整指令
MOV AX,1972H ADD AL,AH DAA MOV AX,0102H ADD AL,AH AAA MOV AX,0609H ADD AL,AH MOV AH,0 AAA
;AL=8BH, ;AL=91H,
AH=19H AH=19H

微机原理-2(指令)

微机原理-2(指令)

说明: 该指令执行结果影响OF、SF、ZF、AF、PF (不影响CF)。 例8:在内存DATA1开始存有5个单字节数据, 试求其累加和存于RES单元。
3、加/减十进制调整
助记符 功 能 助记符 功 能
AAA DAA
加法分离BCD调整
加法组合BCD调整
AAS DAS
减法分离BCD调整
减法组合BCD调整
PUSHF POPF
(FLAG)低8位(AH)
SP(SP)-2, ((SP)+1,(SP))FLAG
FLAG ((SP)+1,(SP)) SP(SP)+2
二、算术运算指令 1、加法/减法指令
指令名称 加法 助 记 符 ADD DST,SRC ADC DST,SRC 功 能
DST(SRC)+(DST)
例12:阅读下列程序段。(以下几条指令判断从键盘输
入的字符是否是‘Y’,但对输入字符的大写、小写不加区别)
MOV AH,1 INT 21H AND AL,11011111B CMP AL,’Y’ JZ YES : YES: …
2、移位指令(算术、逻辑、循环移位)
指令名称 逻辑右移
逻辑/算术 左移
助 记 符 SHR DST,CNT
1、XCHG指令可进行字/字节交换,可在寄存器与 寄存器、寄存器与存储器之间进行交换,但 存储器之间不能交换;
2、CS、IP寄存器不能参与交换。
举例: 见例1 2、累加器专用指令 (1)输入/输出指令-----8条 (放在I/O时介绍)
IN IN IN IN AL,PORT AX,PORT AL,DX AX,DX OUT PORT,AL OUT PORT,AX OUT DX,AL OUT DX,AX

汇编逻辑运算类指令

汇编逻辑运算类指令

汇编逻辑运算类指令
汇编语言中的逻辑运算类指令包括与、或、非和异或等操作。

这些指令用于对数据进行逻辑运算,常用于处理位操作和逻辑判断。

首先是“与”操作,通常用AND指令表示,在大多数汇编语言
中是用关键字“AND”来表示。

AND指令用于将两个操作数的对应位
进行逻辑与操作,结果为1的位保留,结果为0的位清零。

其次是“或”操作,通常用OR指令表示,在汇编语言中是用关
键字“OR”来表示。

OR指令用于将两个操作数的对应位进行逻辑或
操作,只要有一个操作数的对应位为1,结果位就为1。

接下来是“非”操作,通常用NOT指令表示,在汇编语言中是
用关键字“NOT”来表示。

NOT指令用于对操作数的每一位进行取反
操作,即1变为0,0变为1。

最后是“异或”操作,通常用XOR指令表示,在汇编语言中是
用关键字“XOR”来表示。

XOR指令用于将两个操作数的对应位进行
异或操作,即相同则结果为0,不同则结果为1。

这些逻辑运算指令在汇编语言中被广泛应用于各种数据处理和控制流程中,能够对数据进行精确的位操作和逻辑判断,是编程中不可或缺的重要指令。

通过合理的组合和应用,可以实现复杂的逻辑运算和数据处理功能。

第2章-微机原理、汇编与接口技术(第3版)-朱定华-清华大学出版社

第2章-微机原理、汇编与接口技术(第3版)-朱定华-清华大学出版社
6
2.1.2 标号
标号→指令地址的符号表示
1、 标号的三个属性 (1)段基址—定义该标号所在段的段首址的高16位 (2)偏移地址—标号所在段的段首址到该标号定义指令的
字节距离 (3)类型—NEAR和FAR两种 NEAR—段内调用,FAR—段间调用
7
2.1.2 标号
2 、标号的定义 标号只在代码段中定义和使用,定义的方式有两种: (1)书写在符号指令前,用:定义,为NEAR类型, NEAR型标号只能在段内使用! 例: CYCLE:MOV AL,[SI] ;定义近标号CYCLE
4
2.1.1 常量
(2)符号常量 程序中为经常使用的数值取的名。 用EQU或“=”伪指令定义,如:
P EQU 314 P=314
注:汇编时,汇编程序不给符号常量分配存储单元
5
2.1.1 常量
2、数值表达式 数字表达式——由常量与运算符组成的有意义的 式子,结果为一数值。
在汇编语言源程序中,允许对常量进行以下三种类型 的运算: (1)算术运算 包括+,-,×,/,MOD(求余) (2)逻辑运算 包括AND,OR,XOR,NOT (3)关系运算 包括:EQ(=),NE(≠),LT (<),GT(>),LE(≤),GE(≥)
;基址来初始化其变量
(5)由以上表达DB 1,2,3
B6 DB ’1,2,3’
; 此行的“,”不是序列分隔符
14
例 画出数据的存储形式
W1 DW B2 ;用B2的偏移地址初始化W1变量 B1 DB AB$ ;变量B1用A、B、$的ASCII码初始化 W2 DW 1994H D DD EW ;用变量EW的段基址和偏移地址初始化D B2 DB 2 DUP(-5,-1)
微机原理、汇编与接口技术
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1) ADD 加法指令
汇编格式:ADD 目的操作数,源操作数
执行的操作:(目的操作数)←源操作数+目的操作数
2) ADC 带进位加法指令
汇编格式:ADC 目的操作数,源操作数
执行的操作:(目的操作数)←源操作数+目的操作数+CF
3) INC 增量指令
汇编格式:INC 操作数
执行的操作:(操作数)←操作数+1
PS:以上三条指令都可作字或字节运算,除INC指令不影响CF标志位外,其他标志位都受指令操作结果的影响。

4) SUB 减法指令
汇编格式:SUB 目的操作数,源操作数
执行的操作:(目的操作数)←目的操作数-源操作数
5) SBB 带借位减法指令
汇编格式:SBB 目的操作数,源操作数
执行的操作:(目的操作数)←目的操作数-源操作数-CF
6) DEC 减量指令
汇编格式:DEC 操作数
执行的操作:(操作数)←操作数-1
7) NEG 求补指令
汇编格式:NEG 操作数
执行的操作:(操作数)←0-操作数
8) CMP比较指令
汇编格式:CMP 目的操作数,源操作数
执行的操作:目的操作数-源操作数。

PS:以上五条指令都可作字或字节运算。

另外,除DEC指令不影响CF标志位外,其他指令都对标志位有影响。

9) MUL 无符号数乘法指令
汇编格式:MUL 源操作数
执行的操作:假设为字节操作(AX)←(AL)×源操作数
假设为字操作(DX), (AX)←(AX)×源操作数
10) IMUL 有符号数乘法指令
汇编格式:IMUL 源操作数
执行的操作:与MUL一样,只是处理的数据是有符号数,而MUL处理的数据是无符号数。

11) DIV 无符号数除法指令
汇编格式:DIV 源操作数
执行的操作:假设为字节操作:(AL)←(AX)/源操作数的商
(AH)←(AX)/源操作数的余数
假设为字操作:(AX)←(DX、AX)/源操作数的商
(DX)←(DX、AX)/源操作数的余数
商和余数均为无符号数。

12) IDIV 有符号数除法指令
汇编格式:IDIV 源操作数
执行的操作:与DIV一样,只是操作数是有符号数,商和余数均为有符号数,余数符号同被除数符号。

1) AND逻辑与指令
汇编格式:AND 目的操作数,源操作数
执行的操作:(寻址到的目的地址)←目的操作数∧源操作数
2) OR逻辑或指令
汇编格式:OR 目的操作数,源操作数
执行的操作:(寻址到的目的地址)←目的操作数∨源操作数
3) XOR逻辑异或指令
汇编格式:XOR 目的操作数,源操作数
执行的操作:(寻址到的目的地址)←目的操作数∨源操作数
4) TEST测试指令
汇编格式:TEST 目的操作数,源操作数
执行的操作:目的操作数∧源操作数
5) NOT逻辑非指令
汇编格式:NOT 目的操作数
执行的操作:(寻址到的地址)←(操作数)
1) 逻辑移位指令
● SHL逻辑左移指令
汇编格式:SHL 除立即数及段存放器之外的操作数,移位次数
● SHR逻辑右移指令
汇编格式:SHR 除立即数及存放器之外的操作数,移位次数
2) 算术移位指令
● SAL算术左移指令
汇编格式:SAL 除立即数及段存放器之外的操作数,移位次数
● SAR算术右移指令
汇编格式:SAR 除立即数及段存放器之外的操作数,移位次数
3) 小循环移位指令
● ROL循环左移指令
汇编格式:ROL 除立即数和段存放器之外的操作数,移位次数
● ROR循环右移指令
汇编指令:ROR 除立即数和段存放器之外的操作数,移位次数
控制转移指令
1. 无条件转移指令JMP
JMP指令的功能就是无条件地转移到指令指定的地址去执行从该地址开始的指令序列。

汇编格式:JMP SHORT 转移地址标号
以上是部分汇编指令,亲自打的。

最后应周骏康的要求,补充一下存放器注意部分:
通用存放器
●AX→〔AH,AL〕●AX:累加器。

多用于存放中间运算结果。

●BX→〔BH,BL〕●BX:基址存放器。

在间接寻址中用于存放基地址;
●CX→〔CH,CL〕●CX:计数存放器。

用于在循环或串操作指令中存放循环次数或重复次数;
●DX→〔DH,DL〕●DX:数据存放器。

在32位乘除法运算时,存放高16位数;
指针和变址存放器
●SP:堆栈指针存放器,其内容为栈顶的偏移地址;
●BP:基址指针存放器,常用于在访问内存时存放内存单元的偏移地址。

●SI:源变址存放器
●DI:目的变址存放器
变址存放器常用于指令的间接寻址或变址寻址。

段存放器
CS:代码段存放器,代码段用于存放指令代码
DS:数据段存放器
ES:附加段存放器,数据段和附加段用来存放操作数
SS:堆栈段存放器,堆栈段用于存放返回地址,保存存放器内容,传递参数。

相关文档
最新文档