可以修改IP,或同时修改CS和IP的指令统称为转移指令。概括地讲,转移指令就是可以控制CPU执行内存中某处代码的指令。
8086CPU的转移行为有以下几类:
只修改IP时,称为段内转移,比如:jmp ax。
同时修改CS和IP时,称为段间转移,比如:jmp 1000:0
由于转移指令对IP的修改范围不同,段内转移又分为:短转移和近转移
短转移IP的修改范围为-128---127
近转移IP的修改范围为-32768---32767
8086CPU的转移指令分为以下几类:
无条件转移指令(如:jmp)
条件转移指令
循环指令
过程
中...


- [whfeiya] 这里的IP执行后一样是100,不会再后面又变回0003了估计没有经过DEBUG验证 09/12 17:02
- [mywiil] 二楼的建议包含了很本质的原理,博主反思的对。 06/29 19:14
- [joneui] s: mov [bx], bx 改成s: mov [bx], bl 06/26 21:41
- [游客] (1)移送数据应该字节单位,使用字传送有逻辑问题 (3)楼主的思路没有问题。 06/26 19:37
- [joneui] 谢谢你的指导,是有一个错误 (2) mov ax,1000H mov ss,ax 06/25 22:33
- [mess] 其中有一个错误^_^ 06/21 13:36
- [mouse] 正确。 06/17 16:41
- [mouse] 自己能debug得到正确验证,不多说了。 06/17 16:37
- [mouse] 正确。 06/17 16:36
- [mouse] 正确。 06/17 16:35
[2010-07-15 23:39] 第九章、转移指令的原理 笔记
阅读全文 |
评论次数(0) |
浏览次数(359) |
所属类型(默认类型)
[2010-07-10 22:45] 第八章学习笔记
8.1、bx、si、di和bp
1) 在8086CPU中,只有这4个寄存器可以用在”[…]”中来进行内存单元的寻址。
2) 在[…]中,这4个寄存器可以单个出现,或只能以4种组合出现:bx和si、bx和di、bp和si、bp和di。
3) 只要在[…]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中。
8.2、机器指令处理的数据在什么地方
绝大部分机器指令都是进行数据处理的指令,处理大致可分为3类:读取、写入、运算。在机器指令这一层来讲,并不关心数据的值是多少,而关心指令执行前一刻,它将要处理的数据所在的位置。指令在执行前,所要处理的数据可以在3个地方:CPU...
1) 在8086CPU中,只有这4个寄存器可以用在”[…]”中来进行内存单元的寻址。
2) 在[…]中,这4个寄存器可以单个出现,或只能以4种组合出现:bx和si、bx和di、bp和si、bp和di。
3) 只要在[…]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中。
8.2、机器指令处理的数据在什么地方
绝大部分机器指令都是进行数据处理的指令,处理大致可分为3类:读取、写入、运算。在机器指令这一层来讲,并不关心数据的值是多少,而关心指令执行前一刻,它将要处理的数据所在的位置。指令在执行前,所要处理的数据可以在3个地方:CPU...
阅读全文 |
评论次数(0) |
浏览次数(463) |
所属类型(默认类型)
[2010-07-10 22:44] 第七章学习笔记
7.1 and和or指令
(1)and指令:逻辑与指令,按位进行运算
通过该指令可将操作对象的相应位设为0,其他位不变
(2)or指令:逻辑或指令,按位进行或运算
通过该指令可将操作象的相应位设为1,其他位不变
7.2 关于ASCIIA码
7.3 以字符形式给出的数据
可以在汇编程序中,用’……’的方式指明数据是以字符的形式给出的,编译器将把它们转化为相对应的ASCII码。
7.4 大小写转换问题
(1)将小写字母转换成大写字母的方法:and 11011111B(0xDF)
(2)将大写字母转换成小写字母的方法:or 00100000...
(1)and指令:逻辑与指令,按位进行运算
通过该指令可将操作对象的相应位设为0,其他位不变
(2)or指令:逻辑或指令,按位进行或运算
通过该指令可将操作象的相应位设为1,其他位不变
7.2 关于ASCIIA码
7.3 以字符形式给出的数据
可以在汇编程序中,用’……’的方式指明数据是以字符的形式给出的,编译器将把它们转化为相对应的ASCII码。
7.4 大小写转换问题
(1)将小写字母转换成大写字母的方法:and 11011111B(0xDF)
(2)将大写字母转换成小写字母的方法:or 00100000...
阅读全文 |
评论次数(0) |
浏览次数(506) |
所属类型(默认类型)
[2010-07-04 02:47] 第六章学习笔记
在操作系统的环境中,合法地通过操作系统取得的空间都是安全的,因为操作系统不会让一个程序所用的空间和其他程序以及系统自己的空间相冲突。
程序取得所需空间的方法有两种:一是在加载程序的时候为程序分配,再就是程序在执行的过程中系统申请。若要一个程序在被加载的时候取得所需的空间,则必须要在源程序中做出说明。我们通过在源程序中定义段来进行内存空间的获取。
6.1、在代码段中使用数据
1、dw定义字型数据
格式:dw 十六进制数
2、end除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方
3、可执行文件中的程序执行过程如下:
(1)由其他的程序(Debug...
程序取得所需空间的方法有两种:一是在加载程序的时候为程序分配,再就是程序在执行的过程中系统申请。若要一个程序在被加载的时候取得所需的空间,则必须要在源程序中做出说明。我们通过在源程序中定义段来进行内存空间的获取。
6.1、在代码段中使用数据
1、dw定义字型数据
格式:dw 十六进制数
2、end除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方
3、可执行文件中的程序执行过程如下:
(1)由其他的程序(Debug...
阅读全文 |
评论次数(0) |
浏览次数(239) |
所属类型(默认类型)
页码数(1):
1