可以修改IP,或同时修改CS和IP的指令统称为转移指令。概括地讲,转移指令就是可以控制CPU执行内存中某处代码的指令。
8086CPU的转移行为有以下几类。
只修改IP时,称为段内
转移,比如:jmp ax。
同时修改CS和IP时,称为断间转移,比如:jmp 1000:0。
由于转移指令对IP的修改范围不同,段内转移又分为:短转移和近转移。
短转移IP的修改范围为“-128~127”
近转移IP的修改范围为“-32768~32767”
8086CPU的转移指令分为以下几类。
无条件转移指令(如:jmp)
条件转移指令
循环指...
- [游客] 石职wsd专升本da卡 11/18 15:28
- [游客] 石职wsd专升本da卡 11/18 15:28
- [游客] 似乎这个站点没有什么新鲜的活力了 07/23 18:22
- [游客] 博主有没有学习群 07/23 19:14
- [游客] 可以的 07/23 19:13
- [游客] aaaaaaaaaaaa 09/19 13:49
- [jinshuwen] 很有收获! 01/19 16:25
- [hujie0421] 谢谢分享 02/01 05:14
- [jiejie] 来学习一下 10/01 11:31
- [yexueyao] 谢谢,我是学习计算机专业的,汇编语言一学期几乎没听懂过,看你的日记,很有帮助,我会加油学的,期末要拿 11/12 10:14
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:39
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:39
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:38
- [游客] 嘉義定點外約Line: a57963#嘉義學生妹外約 桃園中壢外送茶Line: a57963#中壢外 11/29 15:38
- [bingfeixue] masm32 汇编器具体怎么用啊 04/28 09:24
[2010-07-24 20:49] 汇编语言——第十一天
阅读全文 |
评论次数(1) |
浏览次数(1441) |
所属类型(汇编笔记)
[2010-07-21 19:36] 汇编语言——第十天
为了描述方便,我们将使用两个描述行的符号reg来表示寄存器,永sreg表示一个段寄存器。
reg:{ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di}
sreg:{ds、ss、cs、es}
1.bx、si、di和bp
(1)在8086CPU中,只有这4个寄存器可以永在“[...]”中来进行内存单元的寻址。
(2)在[...]中,这4个寄存器可以单个出现,或只能以4中组合出现:bx和si、bx和di、bp和si、bp和di。
(3)只要在[...]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在...
reg:{ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di}
sreg:{ds、ss、cs、es}
1.bx、si、di和bp
(1)在8086CPU中,只有这4个寄存器可以永在“[...]”中来进行内存单元的寻址。
(2)在[...]中,这4个寄存器可以单个出现,或只能以4中组合出现:bx和si、bx和di、bp和si、bp和di。
(3)只要在[...]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在...
阅读全文 |
评论次数(1) |
浏览次数(1424) |
所属类型(汇编笔记)
[2010-07-20 10:27] 汇编语言——第九天
1.and和or指令
(1)and指令:逻辑与指令,按位进行与运算
如
mov al,01100011B
add al,00111011B
执行后:al=00100011B
通过该指令可将操作对象的相应位设为0,其他位不变
(2)or指令:逻辑或指令,按位进行或运算。语言语言地汇编语言回避那前34
如
mov al,01100011B
or al,00111011B
执行后:al=01111011B
通过该指令可将操作对象的相应位设为1,其他位不变。
2.关于ASCII码
ASCII编码,是在计算机中通常被采用的。简单地说,所谓编码方案,就是一套规则...
(1)and指令:逻辑与指令,按位进行与运算
如
mov al,01100011B
add al,00111011B
执行后:al=00100011B
通过该指令可将操作对象的相应位设为0,其他位不变
(2)or指令:逻辑或指令,按位进行或运算。语言语言地汇编语言回避那前34
如
mov al,01100011B
or al,00111011B
执行后:al=01111011B
通过该指令可将操作对象的相应位设为1,其他位不变。
2.关于ASCII码
ASCII编码,是在计算机中通常被采用的。简单地说,所谓编码方案,就是一套规则...
阅读全文 |
评论次数(1) |
浏览次数(1461) |
所属类型(汇编笔记)
[2010-07-16 19:20] 汇编语言——第八天
在操作系统的环境中,合法地通过操作系统取得的空间都是安全的,因为操作系统不会让一个程
序所用的空间和其他程序以及系统自己的空间相冲突。早操作系统允许的情况下,程序可以取得任意
容量的空间。
陈旭取得所需空间的方法有两种,一是在加载程序的时候为程序分配,再就是程序在执行的过程
中向系统申请。在我们的课程中,不讨论第二种方法。
我们若要一个程序在被加载的时候取得所需的空间,则必须要在原程序中作出说明。我们通过在
原程序中定义段来进行定内存空间的获取。
1.在代码段中使用数据
“dw”的含义是定义字型数据。dw即“define word”具...
序所用的空间和其他程序以及系统自己的空间相冲突。早操作系统允许的情况下,程序可以取得任意
容量的空间。
陈旭取得所需空间的方法有两种,一是在加载程序的时候为程序分配,再就是程序在执行的过程
中向系统申请。在我们的课程中,不讨论第二种方法。
我们若要一个程序在被加载的时候取得所需的空间,则必须要在原程序中作出说明。我们通过在
原程序中定义段来进行定内存空间的获取。
1.在代码段中使用数据
“dw”的含义是定义字型数据。dw即“define word”具...
阅读全文 |
评论次数(1) |
浏览次数(1446) |
所属类型(汇编笔记)
[2010-07-14 21:01] 汇编语言——第七天
1.[bx]和内存单元的描述
要完整地描述一个内存单元,需要两种信息:一、内存单元的地址;二、内存单元的长度(类型)。
[bx]表示一个内存单元,它的偏移地址在bx中。
loop有循环的含义,这个指令和循环有关。
约定符号idata表示常量,如mov ax,[idata]代表mov ax,[1]、mov ax,[2]
mov bx,idata代表mov bx,1、mov bx,2
这些都是非法指令。
inc bx的含义是bx中...
要完整地描述一个内存单元,需要两种信息:一、内存单元的地址;二、内存单元的长度(类型)。
[bx]表示一个内存单元,它的偏移地址在bx中。
loop有循环的含义,这个指令和循环有关。
约定符号idata表示常量,如mov ax,[idata]代表mov ax,[1]、mov ax,[2]
mov bx,idata代表mov bx,1、mov bx,2
这些都是非法指令。
inc bx的含义是bx中...
阅读全文 |
评论次数(0) |
浏览次数(880) |
所属类型(汇编笔记)
[2010-07-11 15:16] 汇编语言——第六天
1.一个源程序从写出到执行的过程
编写汇编源程序——对源程序进行编译连接——执行可执行文件中的程序
2.源程序
在汇编语言源程序中,包含两种指令,一种是汇编指令,一种是伪指令。汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。而伪指令没有对应的机器指令,最终不被CPU所执行。而是由编译器来执行,根据伪指令来进行相关的编译工作。
segment和ends是一对成对使用的伪指令。这事在写可被编译器编译的汇编程序时,必须要用到的一对伪指令。segment和ends的功能是定义一个短,segment说明一个段开始,ends说明一个段的结束。一个段...
编写汇编源程序——对源程序进行编译连接——执行可执行文件中的程序
2.源程序
在汇编语言源程序中,包含两种指令,一种是汇编指令,一种是伪指令。汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。而伪指令没有对应的机器指令,最终不被CPU所执行。而是由编译器来执行,根据伪指令来进行相关的编译工作。
segment和ends是一对成对使用的伪指令。这事在写可被编译器编译的汇编程序时,必须要用到的一对伪指令。segment和ends的功能是定义一个短,segment说明一个段开始,ends说明一个段的结束。一个段...
阅读全文 |
评论次数(24) |
浏览次数(46525) |
所属类型(汇编笔记)
[2010-07-10 20:20] 汇编语言——第五天
1.栈
栈有两个基本的操作:入栈和出栈。入栈就是将一个新的元素放到栈顶,出栈就是从栈顶取出一
个元素。栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。栈的这种操作规则被称为:
LIFO(Last In First Out)。
2.CPU提供的栈机制
8086CPU提供入栈和出栈指令,最基本的两个是PUSH(入栈)和POP(出栈)。在8086CPU中,有
两个寄存器,段寄存器SS和寄存器SP,栈顶的段地址存放在SS中,偏移地址存放在SP中,让人一时刻
,SS:SP指向栈顶元素。push指令和pop指令执行时,CPU从SS和SP中得到栈顶的地址...
栈有两个基本的操作:入栈和出栈。入栈就是将一个新的元素放到栈顶,出栈就是从栈顶取出一
个元素。栈顶的元素总是最后入栈,需要出栈时,又最先被从栈中取出。栈的这种操作规则被称为:
LIFO(Last In First Out)。
2.CPU提供的栈机制
8086CPU提供入栈和出栈指令,最基本的两个是PUSH(入栈)和POP(出栈)。在8086CPU中,有
两个寄存器,段寄存器SS和寄存器SP,栈顶的段地址存放在SS中,偏移地址存放在SP中,让人一时刻
,SS:SP指向栈顶元素。push指令和pop指令执行时,CPU从SS和SP中得到栈顶的地址...
阅读全文 |
评论次数(0) |
浏览次数(828) |
所属类型(汇编笔记)
[2010-07-09 23:44] 汇编语言——第四天
1.内存中字的存储
由于内存单元是字节单元,所以一个字要用两个连续的内存单元来存放,低位字节放在低地址单元中,高位字节放在高地址单元中。
字单元:即存放一个字型数据(16位)的内存单元,由两个连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。
任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可堪称一个地址为N的字单元中的高位字节单元(N+1)和低位字节单元(N)。
2.DS和[address]
CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086CP...
由于内存单元是字节单元,所以一个字要用两个连续的内存单元来存放,低位字节放在低地址单元中,高位字节放在高地址单元中。
字单元:即存放一个字型数据(16位)的内存单元,由两个连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节。
任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可堪称一个地址为N的字单元中的高位字节单元(N+1)和低位字节单元(N)。
2.DS和[address]
CPU要读写一个内存单元的时候,必须先给出这个内存单元的地址,在8086CP...
阅读全文 |
评论次数(2) |
浏览次数(1370) |
所属类型(汇编笔记)
[2010-07-08 19:43] 实验1 查看CPU和内存,用极其指令和汇编指令编程
Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存其中的内容、内容的情况和在机器码级跟踪程序的运行。
Debug部分指令
-r 查看、改变CPU寄存器的内容 例:查看CPU寄存器(r);修改某一寄存器如ax(r ax)输入指令后enter,在:后面输入要写入的数据
-d 查看内存中的内容 格式(d 段地址:偏移地址)例:内存10000H处的内容:d 1000:0 debug将列出从指定单元内存开始的128个内存单元的内容;在一进入debug,用D命令查看,将列出debug预设的地址处的内容,接着使用D命令,可列出后续...
Debug部分指令
-r 查看、改变CPU寄存器的内容 例:查看CPU寄存器(r);修改某一寄存器如ax(r ax)输入指令后enter,在:后面输入要写入的数据
-d 查看内存中的内容 格式(d 段地址:偏移地址)例:内存10000H处的内容:d 1000:0 debug将列出从指定单元内存开始的128个内存单元的内容;在一进入debug,用D命令查看,将列出debug预设的地址处的内容,接着使用D命令,可列出后续...
阅读全文 |
评论次数(0) |
浏览次数(971) |
所属类型(汇编笔记)
[2010-07-08 14:59] 汇编语言——第三天
1.段寄存器
当8086CPU要访问内存时由CS(code segment)、DS(data segment)、SS(stack segment)、ES(extra segment)这4个段寄存器提供内存单元的段地址。
2.CS和IP
CS(代码段寄存器)和IP(指令指针寄存器)是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
8086CPU的工作过程简要描述如下:
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
(2)IP=IP+所读取...
当8086CPU要访问内存时由CS(code segment)、DS(data segment)、SS(stack segment)、ES(extra segment)这4个段寄存器提供内存单元的段地址。
2.CS和IP
CS(代码段寄存器)和IP(指令指针寄存器)是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
8086CPU的工作过程简要描述如下:
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
(2)IP=IP+所读取...
阅读全文 |
评论次数(0) |
浏览次数(1076) |
所属类型(汇编笔记)