当前位置:文档之家› [电脑基础知识]微机接口原理chapter

[电脑基础知识]微机接口原理chapter


h
2
方向标志
当DS=ES时,段内操作 ES/DS
No 方 向 标 志 起始地址
'A'
DF 选 择 串 操 作
'B'
Image 期间寄存器 DI ,
SI 的自增(DF=0) 或 自 减 (DF=1)
'C' 'D' 串长=8 'E' 'F' 'G'
()
字 节 块 串
操作。
'H'
00H
h
3
1.串传送指令MOVS
h
11
②段内间接转移
转移的目标地址由寄存器或存储单元的内容 给出。
例1:JMP CX
若(CX)=1200H,则指令执行后,(IP)=1200H, 于是转向代码段的偏移地址1200H处开始执行。
例2:JMP WORD PTR[BX+DI]
设指令执行前:
(DS)=3000H,(BX)=1300H,
(DI)=1200H,(32500H)=2350H;
h
14
JMP DWORD PTR [SI]的机器码
4000 DS +) 1212 SI
11111111 11101100
41212
41212
00
41213
10
41214
00
41215
4A
DS:[SI]
1000 IP 4A00 CS
则指令执行后:(IP)=?2350H
h
12
③段间直接转移 在指令中直接给出要转移到的目的段地址和 偏移地址。
例:JMP 2000H:1000H 执行时,(IP)←1000H,(CS)←2000H
注:直接地址为符号地址时,婴儿湿疹怎么 办段间直接转移指令中的符号地址前应加操 作符FAR PTR。
例:JMP FAR PTR far_label
③ 段间直接转移 JMP segment:offset
指令中给出的16位的段和16位的偏移地址送到CS和IP。
④ 段间间接转移 JMP mem32
mem32中的16位的段和16位h的偏移地址送到CS和IP10。
① 段内直接转移
转移的目标地址由指令直接给出。指令中 给出的目标地址相对于IP的位移量转移范 围:
REP MOVSB
;串传送
减地址方向
h
8
五、程序控制转移指令
程序控制指令用来控制程序的走向,其
实质是设法改变当前的CS和IP值,以使CPU 转移到一个新的地址处执行程序。
8086提供了五种控制转移指令:无条件转移指 令,条件转移指令,循环控制指令,子程序调用 指令和中断指令。除中断指令外,其它转移类 指令都不影响状态标志。
h
9
1、无条件转移指令-JMP
本指令无条件转移到指定的目标地址,以执行 从该地址开始的程序段。根据设置CS、IP的 方法,JMP指令分成4种情况。
① 段内直接转移: JMP disp
指令中给出的8/16位的位移量送到IP。CS保持不变。
② 段内间接转移: JMP reg/mem
reg/mem中的16位偏移地址送IP。CS保持不变。
串操作
MOVSB
控制转移
JMP,JXX,LOOP,CALL/RET,INT/IRET
h
1
四、串处理指令
可完成两个存储单元之间的传送和比较 操作 串操作指令均采用隐含寻址方式 目的操作数指针 ES:DI 。源DS:SI 每操作一次SI,DI修改一次,方向由DF控 制 重复操作的退出。CX控制,串长度
LEA DI, MEM2 ;设置目的串指针
MOV CX,100 ;设置次数
CLD
;设置方向DF=0
REP MOVSB
;串传送
HALT
h
7
习题3.11
指出以下程序段的功能
LEA SI, FIRST ;设置源串指针
LEA DI, SECOND ;设置目的串指针
MOV CX,10 ;设置次数
STD
;设置方向DF=1
两种格式: MOVSB: [ES:DI]←([DS:SI]),SI±1,DI±1 MOVSW: [ES:DI]←([DS:SI])16,SI±2,DI±2
功能:源串DS:[SI] 目的串ES:[DI] 同时自动修改SI,DI 长度CX
h
4
串传送指令使用举例
将MEM1开始的100个字节数据传送到 MEM2区域:(假定DS、ES已设置好)
重复前缀包括:
• REP
CX≠0 时重复执行
• REPE/REPZ CX≠0∧ZF=1时重复执行
• REPNE/REPNZ CX≠0∧ZF=0时重复执行
h
6
串传送指令使用举例3-36
将MEM1开始的100个字节数据传送到 MEM2区域:(假定DS、ES已设置好)
LEA SI, MEM1 ;设置源串指针
其中的far_label为远类型的标号。
h
13
④段间间接转移
转移的目的地址(段和偏移)在两个相邻的 字存储单元中。例如:
JMP DWORD PTR[SI] 设指令执行前:(DS)=4000H,(SI)=1212H,
(41212H)=1000H,(41214H)=4A00H 则指令执行后:(IP)=?,(CS)=? 于是转到4B000H处开始执行指令。 例中的DWORD PTR表示转移地址是一个双字。
LEA SI,MEM1 ;设置源串指针
LEA DI,MEM2 ;设置目的串指针
MOV CX,100 ;设置执行次数
CLD
;设置方向DF=0
LOP: MOVSB
;串传送
LOOP LOP ;CX不为零,循环执行
HALT
h
5
重复前缀(p128)
串操作指令前面可加上重复前缀。当使用 重复前缀时,MOVS 指令重复执行,重复执 行次数由CX决定。并且每执行一次,CX就 自动减1,直到减为0,婴儿湿疹怎么办然后 退出重复执行。
部分常用的 8086 指令
28原则
指令类型
助记符
数 数据传送 MOV,XCHG; 堆栈PUSH/POP
据 传
地址传送 LEA
;标志传送PUSHF/POPF
送 输入输出 IN,OUT

加法 ADD,ADC,INC,DAA
术 运
减法 SUB,SBB,DEC,CMP
算 乘/除法 MUL,DIV
逻辑 逻辑运算 AND,OR,NOT,XOR,TEST 移位 移位 SHL/SHR/SAR,ROL/ROR,RCL/RCR
位移量 转移范围
汇编语言中格式
8位 -128~+127
JMP SHORT OPRD
16位 -32768~+32767 JMP NEAR PTR OPRD
例:JMP NEAR PTR 0120H ;直接转向0120H
JMP SHOBiblioteka T Lop;转向LPJMP NEAR PTR lop ;转向BBB
由于是段内转移,故转移后CS内容保持不变
相关主题