微机原理 指令大全
微机原理指令系统讲解

2012-3-21
10
四、寄存器间接寻址(Register Indirect 寄存器间接寻址 Addressing) MOV AX,[DI] 指令中的16位寄存器的内容不是操作数,而是 指令中的 位寄存器的内容不是操作数, 位寄存器的内容不是操作数 操作数的偏移地址,操作数本身则在存储器中。 操作数的偏移地址,操作数本身则在存储器中。 可用的寄存器有四个,分别是: 、 、 可用的寄存器有四个,分别是:SI、DI、BX 和BP,但如果使用不同的间址寄存器,则相 ,但如果使用不同的间址寄存器, 应的段寄存器有所不同
2012-3-21 23
一般传送指令MOV (Movement) ⑴ 一般传送指令 MOV dest,src ;(dest)←(src) ← 既可传送字节操作数( 位 既可传送字节操作数(8位),也可传送 字操作数( 位 字操作数(16位); 可使用本章讨论过的各种寻址方式; 可使用本章讨论过的各种寻址方式; 可实现以下各种传送: 可实现以下各种传送:
2012-3-21 26
堆栈操作指令PUSH和POP (Push ⑵ 堆栈操作指令 和 word onto stack, Pop word off stack) 堆栈是内存中一个特定的区域, 堆栈是内存中一个特定的区域,用以存放 寄存器或存储器中暂时不用但又必须保存 的数据。 的数据。
2012-3-21
2012-3-21 7
直接寻址: MOV AX,[3200H] 如果DS=5000H,则所 寻找的操作数的物理 地址: 5000H×10H+3200H =50000H+3200H =53200H
2012-3-21 8
段超越 : MOV BX,ES:[2100H]
2012-3-21
微机原理中的mov指令

微机原理中的mov指令
在微机原理中,MOV指令是一条用于数据传输的指令,用于将一个源操作数的值复制到目的操作数中。
MOV指令是大多数微处理器中通用的指令,并且具有多种变体,如MOV AX, BX、MOV AL, 0F等。
下面是一些常见的MOV指令及其功能:
1. MOV AX, BX:将BX寄存器的值复制到AX寄存器中。
2. MOV AL, 0F:将立即数0F(十六进制)复制到AL寄存器中。
3. MOV [bx+si], al:将AL寄存器的值存储到指定的内存单元中,该内存单元的地址由BX和SI寄存器的值组成。
4. MOV CL, [BX+DI+10]:将指定内存单元中的值加载到CL寄存器中,该内存单元的地址由BX、DI和立即数10相加得到。
5. MOV DX, [SI]:将指定内存单元中的值加载到DX寄存器中,该内存单元的地址由SI寄存器的值指定。
6. MOV [1000H], AX:将AX寄存器的值存储到地址为1000H的内存单元中。
7. MOV AX, [BX+DI]:将指定内存单元中的值加载到AX寄存器中,该内存单元的地址由BX和DI寄存器的值组成。
MOV指令在微机原理中起着非常重要的作用,它允许数据在寄存器和内存之间进行传输,以及寄存器之间的数据交换。
这样可以实现对数据的处理和操作。
微机原理指令系统.

执行操作
(dst) ← (dst) - (src)
SBB dst, src
DEC oprd NEG oprd CMP oprd1, oprd2
(dst) ← (dst) - (src) - CF
(oprd) ← (oprd) - 1 (oprd) ← 0 - (oprd) (oprd1) - (oprd2)
14
减法运算指令
CMP (Compare比较操作) 例: (dest)-(src)
15
乘法指令
乘法:
8位乘法
MUL、IMUL(有符号乘) 、AAM
MUL CL; MUL BYTE PTR [BX+1] 执行AL*OPRD 积= AX
16位乘法
MUL CX; MUL WORD PTR [BX] 执行AX*OPRD 积= DX(高16位)| AX(低16位)
算术运算(Arithmetic)指令
二进制运算
加 减 乘
ADD, ADC, INC SUB, SBB, DEC, NEG, CMP MUL, IMUL DIV, IDIV
十进制调整
AAA, DAA AAS, DAS AAM AAD
除
符号扩展指令(CBW、CWD)
1
加法运算指令
ADD (Addition) 加法 用法:ADD dest,src;
A
B
OF
DF IF SF ZF AF
OV
DN EI NG ZR AC
NV
UP DI PL NZ NA
PF
CF
PE
CY
PO
NC
进位(是/否)
5
加法运算指令
ADC (ADD with Carry)
微机原理8086指令系统表

Opr不能同为Mem
Opr不能为CS(或IP)
PUSH
PUSH Src
(SP)← (SP)-2
((SP) +1,(SP)) ← (Src)
Opr只能16位
Opr不能为Imm、CS
PUSH CS合法
一般配对使用
POP
POP Dest
(Dest)←((SP) +1,(SP))
(SP) ← (SP) +2
Cnt是移位数
Cnt>1,其值要先送到CL
ODITSZAPC= x---xxuxx
SAR
SAR Dest,Cnt
SHL
SHL Dest,Cnt
SHR
SHR Dest,Cnt
ROL
ROL Dest,Cnt
将Dest从一端移出的位返回到另一端形成循环
Dest不能为Imm
Cnt是移位数
Cnt>1,其值要先送到CL
LES
LES DES,Src
(Dest) ←EA (Src)
(ES) ← EA(Src+2)
标
志
传
送
LAHF
LAHF
(AH) ←(FLAGSL)
相反操作
一般配对使用
SAHF标志位=-----rrrrr
SAHF
SAHF
(FLAGSL)← (AH)
PUSHF
PUSHF
(SP)← (SP)-2
((SP) +1,(SP)) ← (PSW)
INC
INC Dest
(Dest) ← (Dest) +1
ODITSZAPC= x---xxxx-
减
法
SUB
微机原理全部指令用法

一.机械码,又称机器码.ultraedit打开,编辑exe文件时你会看到许许多多的由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成的数码,这些数码就是机器码.修改程序时必须通过修改机器码来修改exe文件.二.需要熟练掌握的全部汇编知识(只有这么多)不大容易理解,可先强行背住,混个脸儿熟,以后慢慢的就理解了cmp a,b 比较a与bmov a,b 把b的值送给aret 返回主程序nop 无作用,英文“no operation”的简写,意思是“do nothing”(机器码90)***机器码的含义参看上面(解释:ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop)call 调用子程序je 或jz 若相等则跳(机器码74 或0F84)jne或jnz 若不相等则跳(机器码75或0F85)jmp 无条件跳(机器码EB)jb 若小于则跳ja 若大于则跳jg 若大于则跳jge 若大于等于则跳jl 若小于则跳jle 若小于等于则跳pop 出栈push 压栈三.常见修改(机器码)74=>75 74=>90 74=>EB75=>74 75=>90 75=>EBjnz->nop75->90(相应的机器码修改)jnz -> jmp75 -> EB(相应的机器码修改)jnz -> jz75->74 (正常) 0F 85 -> 0F 84(特殊情况下,有时,相应的机器码修改)四.两种不同情况的不同修改方法1.修改为jmpje(jne,jz,jnz) =>jmp相应的机器码EB (出错信息向上找到的第一个跳转)jmp的作用是绝对跳,无条件跳,从而跳过下面的出错信息xxxxxxxxxxxx 出错信息,例如:注册码不对,sorry,未注册版不能…,”Function Not Avaible in Demo” 或”Command Not Avaible” 或”Can’t save in Shareware/Demo”等(我们希望把它跳过,不让它出现)。
微机原理指令系统学习

例3: MOV [CX], 2000H ;错,不能对CX间接寻址
16
五、 变址寻址 操作数在内存中,由指定的寄存器内容,加上指令中给出的8位或16位偏移量作为操作数的偏移地址,计算 方法:
偏移地址=寄存器内容+指令中给定的偏移量 同样,作为变址的寄存器只能有4个:BX, SI, DI, BP,其他寄存器无此功能。
SP
SP
SP 31
3. 交换指令XCHG 格式:XCHG OPRD1, OPRD2
功能:(OPRD1) (OPRD2) 完成通用寄存器之间,通用寄存器与累加器之间、与存储器之间8位,16位数据的相互交换。
例如:XCHG BL, AH
1) 内存之间的数据、累加器之间不可相互交换 2) CS,IP不能参与交换 3) 段寄存器和立即数不能作为一个操作数
寻址方式:是指令中用于说明如何寻找操作数的方法。
计算机中操作数常存放在以下几个地方: 指令代码中,存放常量;MOV AX, 2070H 寄存器中:MOV AX, BX 内存中: MOV AX, [2000H] I/O端口中(仅对INLeabharlann OUT指令): IN AL, 40H
6
8086/8088的基本寻址方式有六种:
XCHG AX, [BX]
32
4. 累加器专用指令(只与AX或AL有关,与AH无关)
1)输入输出指令 输入
CPU
21000H 21001H 21002H 21003H 21004H 21005H 21006H 21007H
12H 34H 56H 78H 9AH BCH DEH F0H
31000H 31001H 31002H 31003H 31004H 31005H 31006H 31007H
微机原理指令范文

微机原理指令范文1.指令的定义和分类指令是计算机执行其中一种特定操作的命令。
在微机原理中,指令可以分为几类:数据传送指令、算术运算指令、逻辑运算指令、移位指令、控制转移指令和输入/输出指令。
2.数据传送指令数据传送指令用于将数据从一个地方传送到另一个地方。
常见的传送指令有:MOV(将数据从一个寄存器复制到另一个寄存器)、LDR(将数据从存储器加载到寄存器)、STR(将数据从寄存器存储到存储器)等。
3.算术运算指令算术运算指令用于执行加、减、乘、除等算术运算。
常见的算术运算指令有:ADD(将两个操作数相加)、SUB(将两个操作数相减)、MUL(将两个操作数相乘)、DIV(将两个操作数相除)等。
4.逻辑运算指令逻辑运算指令用于执行逻辑运算,如与、或、非等。
常见的逻辑运算指令有:AND(将两个操作数进行与运算)、OR(将两个操作数进行或运算)、NOT(将操作数取反)等。
5.移位指令移位指令用于将数据在寄存器中进行左移或右移操作。
常见的移位指令有:LSL(将操作数左移指定的位数)、LSR(将操作数右移指定的位数)等。
6.控制转移指令控制转移指令用于改变程序的执行顺序。
常见的控制转移指令有:JMP(无条件跳转到指定地址)、JZ(当零标志位为真时跳转到指定地址)、JC(当进位标志位为真时跳转到指定地址)等。
7.输入/输出指令输入/输出指令用于与外部设备进行数据交换。
常见的输入/输出指令有:IN(将外部设备的数据读取到寄存器中)、OUT(将寄存器中的数据输出到外部设备中)等。
每个指令都包含操作码和操作数两个部分。
操作码确定指令的操作类型,而操作数则指定了操作的数据。
指令由字节或字(16位)组成,具体的格式和编码方式可以根据不同的微机架构而有所不同。
在微机中,指令是由控制单元根据程序计数器的值读取的。
程序计数器用于存储下一条执行的指令的地址。
控制单元会将指令传递给执行单元进行执行,并根据指令的操作码和操作数执行相应的操作。
微机原理汇编常用指令

1) ADD 加法指令汇编格式:ADD 目的操作数,源操作数执行的操作:(目的操作数)←源操作数+目的操作数2) ADC 带进位加法指令汇编格式:ADC 目的操作数,源操作数执行的操作:(目的操作数)←源操作数+目的操作数+CF3) INC 增量指令汇编格式:INC 操作数执行的操作:(操作数)←操作数+1PS:以上三条指令都可作字或字节运算,除INC指令不影响CF标志位外,其他标志位都受指令操作结果的影响。
4) SUB 减法指令汇编格式:SUB 目的操作数,源操作数执行的操作:(目的操作数)←目的操作数-源操作数5) SBB 带借位减法指令汇编格式:SBB 目的操作数,源操作数执行的操作:(目的操作数)←目的操作数-源操作数-CF6) DEC 减量指令汇编格式:DEC 操作数执行的操作:(操作数)←操作数-17) 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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
。
MOV(MOVe) 传送指令P86
PUSH 入栈指令P86
POP 出栈指令P87
XCHG(eXCHanG) 交换指令P88
XLAT(TRANSLATE) 换码指令P89
LEA (Load Effective Address) 有效地址送寄存器指令P89
LDS(Load DS with pointer) 指针送寄存器和DS指令P90
LES(Load ES with pointer) 指针送寄存器和ES指令P90
LAHF(Load AH with Flags) 标志位送AH指令P91
SAHF(Store AH into Flgs) AH送标志寄存器指令P91
PUSHF(PUSH the Flags) 标志进栈指令P91
POPF(POP the Flags) 标志出栈指令P91
ADD 加法指令P92
ADC 带进位加法指令P92
INC 加1指令P92
SUB(SUBtract) 不带借位的减法指令P93
SBB(SuVtrach with borrow) 带借位的减法指令P93
DEC(DECrement) 减1指领P93
NEG(NEGate) 求补指令P93
CMP(CoMPare) 比较指令P93
MUL(unsinged MULtiple) 无符号数乘法指令P93
IMUL(sIgned MUL tiple) 有符号数乘法指令P93
DIV(unsigned DIVide) 无符号数除法指令P94
IDIV(sIgned DIVide) 有符号数除法指令P94
CBW(Count Byte to Word) 字节转换为字指令P94
CWD(Count Word to Doble word) 字转换为双字指令P94
DAA 压缩的BCD码加法十进制调整指令P95
DAS 压缩的BCD码减法十进制调整指令P95
AAA 非压缩的BCD码加法十进制调整指令P95
AAS 非压缩的BCD码加法十进制调整指令P95 AAM,AAD
AND 逻辑与指令P96
OR 逻辑或指令P96
XOR 逻辑异或指令P96
NOT 逻辑非指令P96
TEST 测试指令P96
SHL(SHift logical Letf) 逻辑左移指令P97
SHR(SHift logical Right) 逻辑右移指令P97
SAL
SAR
ROL(Rotate Left ) 循环左移指令P98
ROR(Rotate Right) 循环右移指令P98
RCL(Rotate Left through Carry) 带进位循环左移P98
RCR(Rotate Right through Carry) 带进位循环左移P98
MOVS(MOVe String) 串传送指令P100
。
STOS(STOre into String) 存入串指令P102
LODS(LOad from string) 从串取指令P102
REP(REPeat) 重复操作前缀P99
CLD(CLear Direction flag) 清除方向标志指令107
STD(SeT Direction flag) 设置方向标志指令107
CMPS(CoMPare String) 串比较指令100
SCAS(SCAn String) 串扫描指令101
REPE/REPZ(REPeat while Equal/Zero)相等/为零时重复操作前缀99
REPNE/REPNZ(REPeat while Not Equal/Zero)不相等/不为零进重复前缀99
IN(INput) 输入指令88
OUT(OUTput) 输出指令88
JMP(JuMP) 无条件转移指令103
JZ,JNZ,JS,JNS,JO,JNO,JP,JNP,JB,JNB,JBE,JNBE,JL,JNL,JLE,JNLE,JCXZ 条件转移指
令103
LOOP 循环指令105
LOOPZ/LOOPE 为零/相等时循环指令105
LOOPNZ/LOOPNE 不为零/不相等时循环指令105
CALL 子程序调用指令106
RET(RETun) 子程序返回指令106
CLC(CLear Carry) 进位位置0指令107
CMC(CoMplement Carry) 进位位求反指令107
SRC(SeT Carry) 进位位置1指令
NOP(No OPeretion) 无操作指令 107
HLT(HaLT) 停机指令107
OFFSET 返回偏移地址 141
SEG 返回段地址141 TYPE SIZE LENGTH 142
EQU(=) 等值语句128
PURGE 解除语句128
DUP 操作数字段用复制操作符127
SEGMENT,ENDS 段定义指令129
ASSUME 段地址分配指令130
ORG 起始偏移地址设置指令132
$ 地址计数器的当前值
PROC,ENDP 过程定义语句131
NAME,TITLE,END 程序开始结束语句131,132
MACRO,ENDM 宏定义指令147
STRUC,ENDS 133
PUBLIC,EXTRN 136
EVEN 138
MOD 139
IF, END IF 138
EQ, NE,LT,GT,LE,GE 140
THIS SHORT HIGH LOW 144
INT 20H INT 21H 153
。
Welcome
欢迎您的下载,
资料仅供参考!