可以修改IP, 或同时修改CS和IP的指令统称为转称指令.
只修改IP时, 称为段内转移, 比如: jmp ax.
同时修改CS和IP时, 称为段间转称, 比如: jmp 1000:0
由于转移指令对IP的修改范围不同, 段内转移又分为: 短转移和近转移.
短转移IP的修改范围为 -128~127
近转移IP的修改范围为 -32768 ~ 32767
8086CPU的转移指令分为以下几类
无条件转移指令(如:jmp)
无条件转移指令
循环指令(如:loop)
过程
中断
CPU在执行jmp指令的时候并...


- [deepblue] 好记性不如烂笔头,lz好习惯啊! 07/22 22:09
- [deepblue] 恩,第二题 我写的是 mov [bx+2],cs 如果是 mov [bx+2],code 是 07/22 22:08
- [deepblue] 不错哦! 07/22 21:57
- [deepblue] 恩 ,不错。 07/22 21:55
- [deepblue] 这是 jmp short 标号 形式吗 ,那jmp far ptr 标号呢 07/22 21:54
- [deepblue] 很漂亮 07/22 21:46
- [zh198785] 我的BX没有进行增量操作, 把BX去掉都行, 只是基于类C的写法, 用了[bx]做前缀 07/19 07:44
- [游客] 问下:你在何处对BX进行的增量操作? 07/18 23:40
- [xiaochong] 总结的不错,都是重点的地方,很不错! 07/18 20:08
- [xiaochong] 完全正确,博主继续! 07/18 20:04
[2008-07-22 20:59] 第9章 转移指令的原理
阅读全文 |
评论次数(1) |
浏览次数(599) |
所属类型(学习笔记)
[2008-07-18 18:16] 第8章 数据处理的两个基本问题
8.1 bx, si, di和bp
只有这4个寄存器可以用在 "[...]" 中来进行内存单元的寻址.
而且只有以4种组合出现: bx和si, bx和di, bp和si, bp和di
只要在[...]中使用寄存器bp, 而指令中没有显性地给出段地址, 段地址就默认在ss中.
--------------------------------------------------------------------------------
8.2 机器指令处理的数据在什么地方
指令在执行前, 所要处理的数据可以在3个地方: CPU内部, 内存, 端...
只有这4个寄存器可以用在 "[...]" 中来进行内存单元的寻址.
而且只有以4种组合出现: bx和si, bx和di, bp和si, bp和di
只要在[...]中使用寄存器bp, 而指令中没有显性地给出段地址, 段地址就默认在ss中.
--------------------------------------------------------------------------------
8.2 机器指令处理的数据在什么地方
指令在执行前, 所要处理的数据可以在3个地方: CPU内部, 内存, 端...
阅读全文 |
评论次数(1) |
浏览次数(521) |
所属类型(学习笔记)
[2008-07-17 15:26] 第7章 更灵活的定位内存地址的方法
用'......' 的方式指明数据是以字符的形式给出的.
(1) [idata] 用一个常量来表示地址, 可用于直接定位一个内存单元
(2) [bx] 用一个变量来表示内存地址, 可用于间接定位一个内存单元
(3) [bx+idata] 用一个变量和常量表示地址, 可在一个起始地址的基础上用变量间接定位一个内存单元
(4) [bx+si] 用两个变量表示地址.
(5) [bx+si+idata] 用两个变量和一个常量表示地址....
(1) [idata] 用一个常量来表示地址, 可用于直接定位一个内存单元
(2) [bx] 用一个变量来表示内存地址, 可用于间接定位一个内存单元
(3) [bx+idata] 用一个变量和常量表示地址, 可在一个起始地址的基础上用变量间接定位一个内存单元
(4) [bx+si] 用两个变量表示地址.
(5) [bx+si+idata] 用两个变量和一个常量表示地址....
阅读全文 |
评论次数(1) |
浏览次数(542) |
所属类型(学习笔记)
[2008-07-16 08:04] 第6章 包含多个段的程序
合法地通过操作系统取得的空间都是安全的, 因为操作系统不会让一个程序所用的空间和其他程序以及系统自己的空间相冲突.
程序取得所需窨的方法有两种: 一是在加载程序的时候为程序分配, 再就是程序在执行的过程中向系统申请
--------------------------------------------------------------------------------
6.1 在代码段中使用数据
在源程序中, 在汇编指令前面, 用dw定义数据
end 除了通知编译顺程序结束外, 还可以通知编译器程序的入口在...
程序取得所需窨的方法有两种: 一是在加载程序的时候为程序分配, 再就是程序在执行的过程中向系统申请
--------------------------------------------------------------------------------
6.1 在代码段中使用数据
在源程序中, 在汇编指令前面, 用dw定义数据
end 除了通知编译顺程序结束外, 还可以通知编译器程序的入口在...
阅读全文 |
评论次数(2) |
浏览次数(230) |
所属类型(学习笔记)
[2008-07-12 17:46] 第5章 [BX]和loop指令
完整地描述一个内存单元, 需要两种信息: 1 内存单元的地址; 2. 内存单元的长度(类型)
CPU执行loop指令的时候, 要进行两步操作, 1(cx)=(cx)-1; 2 判断 cx 中的值, 不为零则转至标号处执行程序,如果为零则向下执行.
在汇编源程序中, 数据不能以字母开头.
(1) 在汇编源程序中, 如果用指令访问一个内存单元, 则在指令中必须用 "[...]"来表示内存单元, 如果在"[]"里用一个常量idata 直接给出内存单元的偏移地址, 就要在"[]"的前面显式地给出段地址所原段寄存器.
(2) 如果在"[...
CPU执行loop指令的时候, 要进行两步操作, 1(cx)=(cx)-1; 2 判断 cx 中的值, 不为零则转至标号处执行程序,如果为零则向下执行.
在汇编源程序中, 数据不能以字母开头.
(1) 在汇编源程序中, 如果用指令访问一个内存单元, 则在指令中必须用 "[...]"来表示内存单元, 如果在"[]"里用一个常量idata 直接给出内存单元的偏移地址, 就要在"[]"的前面显式地给出段地址所原段寄存器.
(2) 如果在"[...
阅读全文 |
评论次数(1) |
浏览次数(237) |
所属类型(学习笔记)
[2008-07-11 17:30] 第4章 第一个程序
4.1 一个源程序从写出到执行的过程
第一步: 编写汇编源程序
第二步: 对源程序进行编译连接
可执行文件包含两部分内容
. 程序(从源程序序中汇编指令翻译过来的机器码)和数据(源程序中定义的数据)
. 相关的描述信息(比如,程序有多大, 要占用多少内存空间等)
第三步: 执行可执行文件中的程序
------------------------------------------------------------------------------...
第一步: 编写汇编源程序
第二步: 对源程序进行编译连接
可执行文件包含两部分内容
. 程序(从源程序序中汇编指令翻译过来的机器码)和数据(源程序中定义的数据)
. 相关的描述信息(比如,程序有多大, 要占用多少内存空间等)
第三步: 执行可执行文件中的程序
------------------------------------------------------------------------------...
阅读全文 |
评论次数(0) |
浏览次数(253) |
所属类型(学习笔记)
[2008-07-10 03:55] 第3章 寄存器(内存访问)
3.1 内存中字的存储
字的低位字节存放在低地址单元中,高位字节存放在高地址单元中 (小端机器).
字单元: 即存放一个字型数据(16位)的内存单元.
任何两个地址连续的内存单元, N号单元和N+1号单元, 可以将它们看成两个内存单元,也可看成一个地址为N的字单元中的高位字节单元和低位字节单元.
--------------------------------------------------------------------------------
3.2 DS和[address]
8086CPU中有一...
字的低位字节存放在低地址单元中,高位字节存放在高地址单元中 (小端机器).
字单元: 即存放一个字型数据(16位)的内存单元.
任何两个地址连续的内存单元, N号单元和N+1号单元, 可以将它们看成两个内存单元,也可看成一个地址为N的字单元中的高位字节单元和低位字节单元.
--------------------------------------------------------------------------------
3.2 DS和[address]
8086CPU中有一...
阅读全文 |
评论次数(3) |
浏览次数(222) |
所属类型(学习笔记)
[2008-07-09 04:31] 第2章 寄存器
一个典型的CPU由运算器, 控制器, 寄存器等器件构成, 靠内部总线相连, 内部总线实现CPU内部各个器件之间的联系, 外部总线实现CPU和主板上其他器件的联系.
运算器进行信息处理
寄存器进行信息存储
控制器控制各种器件进行工作
内部总线连接各种器件, 在它们之间进行数据的传送
--------------------------------------------------------------------------------
2.1 通用寄存器
8086CPU的所有寄存器都是16位的, 可以存放两个字节.AX,BX,CX,...
运算器进行信息处理
寄存器进行信息存储
控制器控制各种器件进行工作
内部总线连接各种器件, 在它们之间进行数据的传送
--------------------------------------------------------------------------------
2.1 通用寄存器
8086CPU的所有寄存器都是16位的, 可以存放两个字节.AX,BX,CX,...
阅读全文 |
评论次数(1) |
浏览次数(267) |
所属类型(学习笔记)
[2008-07-09 01:18] 第1章 基础知识
1.1 机器语言
机器语言是机器指令的集合.机器指令是一列二进制数字.
每一种微处理器都有自己的机器指令集,也就是机器语言.
--------------------------------------------------------------------------------
1.2 汇编语言的产生
汇编语言的主体是汇编指令.汇编指令是机器指令便于记忆的书写格式.
编译器将汇编指令转换成机器指令
------------------------------...
机器语言是机器指令的集合.机器指令是一列二进制数字.
每一种微处理器都有自己的机器指令集,也就是机器语言.
--------------------------------------------------------------------------------
1.2 汇编语言的产生
汇编语言的主体是汇编指令.汇编指令是机器指令便于记忆的书写格式.
编译器将汇编指令转换成机器指令
------------------------------...
阅读全文 |
评论次数(1) |
浏览次数(290) |
所属类型(学习笔记)
页码数(1):
1