循环指令
循环结构是程序的三大结构之一。为了方便构成循环结构,汇编语言提供了多种循环指令,这些循环指令的循环次数都是保存在计数器CX或ECX中。除了CX或ECX可以决定循环是否结束外,有的循环指令还可由标志位ZF来决定是否结束循环。
在高级语言中,循环计数器可以递增,也可递减,但汇编语言中,CX或ECX只能递减,所以,循环计数器只能从大到小。在程序中,必须先把循环次数赋给循环计数器。
汇编语言的循环指令都是放在循环体的下面,在循环时,首先执行一次循环体,然后把循环计数器CX或ECX减1。当循环终止条件达到满足时,该循环指令下面的指令将是下一条被执行的指令,否则,程序将向上转到循环体的...


- [游客] 博主你好,我是一名汇编初学者,麻烦把全套资料发给我,谢谢 10/04 18:27
- [xtp1256065080] 1256065080@qq.com 博主,我刚刚接触汇编,可以把全套资料发给我么,谢谢 09/29 12:14
- [游客] luobosang@163.com 博主,我也想学好汇编,麻烦把整套资料发给我,谢谢! 06/13 11:56
- [piaoyi406] 楼主谢谢了,792619575@qq.com 05/06 23:36
- [mingfeng] (1)《嵌入式软件基础——C语言与汇编的融合:翻译版》 【美】刘易斯(Lewis, D.W)著 ( 05/05 17:28
- [游客] (1)《MASM 6.11 汇编语言应用》 蔡友家 著 这本老书,真的很难找 (2)《保 01/20 17:55
- [游客] 好像略懂了! 谢谢 如果这学期早点发现你这些文章,会对自己学习汇编语言有很大的帮助! 12/21 15:25
- [1197257321] 我现在也在学王爽老师的《汇编语言》,想看看你在学汇编时的辅助教材 《汇编语言》,谢了。1197257 11/25 18:47
- [tianyuanwu] 我也想要,可以全部发给我吗,谢谢LZ,我的邮箱是 397225220@qq.com 11/25 12:49
- [游客] ·《嵌入式软件基础——C语言与汇编的融合:翻译版》 和王爽《汇编语言》课后习题答案及实验解答·谢谢 10/31 21:25
- [游客] 从键盘输入两个数字字符,存入缓冲区。 把sh1内的字符转换为十六进制,存入sh2.从sh2读 01/11 20:31
[2008-07-01 09:44] 循环指令
阅读全文 |
评论次数(1) |
浏览次数(1246) |
所属类型(学习笔记)
[2008-06-27 10:58] 学习笔记 第8章 数据处理的两个基本问题
学习笔记 第8章 数据处理的两个基本问题
1, 两个基本问题:处理的数据在什么地方?要处理的数据有多长?这两个问题,在机器指令中必须给以明确或隐含的说明,否则计算机就无法工作。
2, 基址和变址寄存器:bx,bp,si,di
①在8086CPU中,只有这4个寄存器可以用在“[…]”中来进行内存单元的寻址。
比如下面的指令都是正确的:
mov ax, [bx] ;寄存器间接寻址方式
mov ax, [bx+si] ; 基址变址寻址方式,也可写成mov ax, [bx][si]
mov ax, [bp] ...
1, 两个基本问题:处理的数据在什么地方?要处理的数据有多长?这两个问题,在机器指令中必须给以明确或隐含的说明,否则计算机就无法工作。
2, 基址和变址寄存器:bx,bp,si,di
①在8086CPU中,只有这4个寄存器可以用在“[…]”中来进行内存单元的寻址。
比如下面的指令都是正确的:
mov ax, [bx] ;寄存器间接寻址方式
mov ax, [bx+si] ; 基址变址寻址方式,也可写成mov ax, [bx][si]
mov ax, [bp] ...
阅读全文 |
评论次数(2) |
浏览次数(2355) |
所属类型(学习笔记)
[2008-06-26 20:15]
学习笔记 第7章 更灵活的定位内存地址的方法
学习笔记 第7章 更灵活的定位内存地址的方法
其实这些内容全部来自网络,与其说是学习笔记,不如说是转载文章。只不过我把三篇文章合成一块了,刚好作为第7章内容的一个补充和扩展。
文章来自:
“《汇编语言程序设计》课程教案”
网址:http://www2.jxust.cn/main/yzkc/hbyysj/ljnr/kcja/kcja32.htm
“《微机原理》远程教学”
网址:http://www.ahtvu.ah.cn/jxc1/zhykch/5124/jiaoxuefudao/xzfs1.htm
“北京邮电大学网络教学”。
网址:http://teach.jwc.b...
其实这些内容全部来自网络,与其说是学习笔记,不如说是转载文章。只不过我把三篇文章合成一块了,刚好作为第7章内容的一个补充和扩展。
文章来自:
“《汇编语言程序设计》课程教案”
网址:http://www2.jxust.cn/main/yzkc/hbyysj/ljnr/kcja/kcja32.htm
“《微机原理》远程教学”
网址:http://www.ahtvu.ah.cn/jxc1/zhykch/5124/jiaoxuefudao/xzfs1.htm
“北京邮电大学网络教学”。
网址:http://teach.jwc.b...
阅读全文 |
评论次数(1) |
浏览次数(2058) |
所属类型(学习笔记)
[2008-06-25 10:17] 学习笔记: 第6章 包含多个段的程序
学习笔记: 第6章 包含多个段的程序
1. 在操作系统的环境中,操作系统管理所有的资源,包括内存。如果我们需要向内存空间写入数据的话,要使用操作系统给我们分配的空间,而不应该直接用地址任意指定内存单元,向里面写入。
合法地通过操作系统取得的空间都是安全的,因为操作系统不会让一个程序所用的空间和其他程序以及系统自己的空间相冲突。在操作系统允许的情况下,程序可以取得任意容量的空间。
程序取得所需空间的方法有两种:一是在加载程序的时候为程序分配,二是程序在执行的过程中向系统申请。
2.End除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方,...
1. 在操作系统的环境中,操作系统管理所有的资源,包括内存。如果我们需要向内存空间写入数据的话,要使用操作系统给我们分配的空间,而不应该直接用地址任意指定内存单元,向里面写入。
合法地通过操作系统取得的空间都是安全的,因为操作系统不会让一个程序所用的空间和其他程序以及系统自己的空间相冲突。在操作系统允许的情况下,程序可以取得任意容量的空间。
程序取得所需空间的方法有两种:一是在加载程序的时候为程序分配,二是程序在执行的过程中向系统申请。
2.End除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方,...
阅读全文 |
评论次数(1) |
浏览次数(1270) |
所属类型(学习笔记)
[2008-06-16 07:10] 二进制在数学中的妙用
二进制在数学中的妙用
goal00001111搜集整理
十八世纪初,莱布尼茨发明了二进制数,当时的他肯定没有预料到二进制在信息时代会有着如此广泛的应用。二进制数以其工作可靠,运算简单,逻辑严密,容易实现等特点,成为了计算机的专用语言。在计算机科学和大量应用数学领域中,二进制记数法是必不可少的。在趣味数学方面,同样也有广泛的应用。
让我们先来看一个经典的数学趣题:
一工人工作7天,老板有一段黄金,每天要给工人1/7的黄金作为工资,老板只能切这段黄金2刀,请问怎样切才能每天都给工人1/7的黄金?
这题不简单吧?小心别把脑子都想破了。
在给出答案之前,先让我们看另一个简单的例子: ...
goal00001111搜集整理
十八世纪初,莱布尼茨发明了二进制数,当时的他肯定没有预料到二进制在信息时代会有着如此广泛的应用。二进制数以其工作可靠,运算简单,逻辑严密,容易实现等特点,成为了计算机的专用语言。在计算机科学和大量应用数学领域中,二进制记数法是必不可少的。在趣味数学方面,同样也有广泛的应用。
让我们先来看一个经典的数学趣题:
一工人工作7天,老板有一段黄金,每天要给工人1/7的黄金作为工资,老板只能切这段黄金2刀,请问怎样切才能每天都给工人1/7的黄金?
这题不简单吧?小心别把脑子都想破了。
在给出答案之前,先让我们看另一个简单的例子: ...
阅读全文 |
评论次数(1) |
浏览次数(1713) |
所属类型(学习笔记)
[2007-12-25 11:35]
学习笔记:第12章 内中断
学习笔记:第12章 内中断
1, 中断和中断源:
所谓中断就是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为中断源,称处理紧急事务的程序为中断服务程序或中断处理程序。 计算机系统还根据紧急事务的紧急程度,把中断分为不同的优先级,并规定:高优先级的中断能暂停低优先级的中断服务程序的执行。
计算机系统有上百种可以发出中断请求的中断源,但最常见的中断源是:外设的输入输出请求,如:键盘输入引起的中断,通信端口接受信息引起的中断等;还有一些计算机内部的异常事件,如:0作除数、奇偶校验错等。
CPU在执行程序时...
1, 中断和中断源:
所谓中断就是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为中断源,称处理紧急事务的程序为中断服务程序或中断处理程序。 计算机系统还根据紧急事务的紧急程度,把中断分为不同的优先级,并规定:高优先级的中断能暂停低优先级的中断服务程序的执行。
计算机系统有上百种可以发出中断请求的中断源,但最常见的中断源是:外设的输入输出请求,如:键盘输入引起的中断,通信端口接受信息引起的中断等;还有一些计算机内部的异常事件,如:0作除数、奇偶校验错等。
CPU在执行程序时...
阅读全文 |
评论次数(0) |
浏览次数(750) |
所属类型(学习笔记)
[2007-12-09 09:31] 学习笔记:调试程序debug常用指令的使用(3)
7,继续命令P
继续命令P(Proceed)类似T命令,逐条执行指令、显示结果。但是当遇到子程序调用、中断功能调用和循环指令等时,不在子程序、中断服务程序或循环体中单步执行,而是直接执行完成子程序、中断服务程序或循环体,然后显示结果。
P [=地址] [数值]
当不需要调试子程序、中断服务程序或循环程序段时,要应用P命令,而不是T命令。
8,运行命令G
运行命令G(Go)从指定地址处开始运行程序,直到遇到断点或者程序正常结束。
G [=地址] [断点地址1,断点地址2,...,断点地址10]
G命令等号后的地址指定程序段运行的起始地址,如不指定则从当前的CS : ...
继续命令P(Proceed)类似T命令,逐条执行指令、显示结果。但是当遇到子程序调用、中断功能调用和循环指令等时,不在子程序、中断服务程序或循环体中单步执行,而是直接执行完成子程序、中断服务程序或循环体,然后显示结果。
P [=地址] [数值]
当不需要调试子程序、中断服务程序或循环程序段时,要应用P命令,而不是T命令。
8,运行命令G
运行命令G(Go)从指定地址处开始运行程序,直到遇到断点或者程序正常结束。
G [=地址] [断点地址1,断点地址2,...,断点地址10]
G命令等号后的地址指定程序段运行的起始地址,如不指定则从当前的CS : ...
阅读全文 |
评论次数(1) |
浏览次数(483) |
所属类型(学习笔记)
[2007-11-29 09:10] 学习笔记:第5章[bx]和loop指令
学习笔记:第5章[bx]和loop指令
1.我们要完整地描述一个内存单元,需要两种信息:内存单元的地址和内存单元的长度(类型)。
我们用[0]表示一个 内存单元时,0表示单元的偏移地址,段地址默认在ds中,单元的长度(类型)可以由具体指令中其他操作对象(比如说寄存器)指出。
2.我们使用符号“()”来表示一个寄存器或者一个内存单元中的内容。“(x)”所表示的数据有两种类型:字节和字,是哪种类型由寄存器名或具体的运算决定,例如:
(ax)表示ax中的内容为字型,(al)表示al中的内容为字节型;(20000H)表示内存20000H单元的内容,到底是哪种类型要根据具体情况而定。
...
1.我们要完整地描述一个内存单元,需要两种信息:内存单元的地址和内存单元的长度(类型)。
我们用[0]表示一个 内存单元时,0表示单元的偏移地址,段地址默认在ds中,单元的长度(类型)可以由具体指令中其他操作对象(比如说寄存器)指出。
2.我们使用符号“()”来表示一个寄存器或者一个内存单元中的内容。“(x)”所表示的数据有两种类型:字节和字,是哪种类型由寄存器名或具体的运算决定,例如:
(ax)表示ax中的内容为字型,(al)表示al中的内容为字节型;(20000H)表示内存20000H单元的内容,到底是哪种类型要根据具体情况而定。
...
阅读全文 |
评论次数(1) |
浏览次数(485) |
所属类型(学习笔记)
[2007-11-18 21:18]
学习笔记:第四章 第一个程序
学习笔记:第四章 第一个程序
1.一个汇编语言程序从写出到最终执行的简要过程:
第一步,编写汇编源程序。纯文本文件(.ASM,.TXT)。
第二步,对源程序进行编译连接。目标文件(.OBJ)。
第三步,执行可执行文件中的程序。可执行文件(.EXE)。
编程(edit)->abc.asm(源文件)->编译(masm)->abc.obj(目标文件)->连接(link)->abc.exe(可执行文件)->加载(command)->内存中的程序->运行(CPU)。
2.可执行文件中包含两部分内容:
程序(机器码)和数据;
相关的描述信息,如程序的大小,占用的内存空间等...
1.一个汇编语言程序从写出到最终执行的简要过程:
第一步,编写汇编源程序。纯文本文件(.ASM,.TXT)。
第二步,对源程序进行编译连接。目标文件(.OBJ)。
第三步,执行可执行文件中的程序。可执行文件(.EXE)。
编程(edit)->abc.asm(源文件)->编译(masm)->abc.obj(目标文件)->连接(link)->abc.exe(可执行文件)->加载(command)->内存中的程序->运行(CPU)。
2.可执行文件中包含两部分内容:
程序(机器码)和数据;
相关的描述信息,如程序的大小,占用的内存空间等...
阅读全文 |
评论次数(6) |
浏览次数(974) |
所属类型(学习笔记)
[2007-10-29 09:48] 学习笔记:第三章 寄存器(内存访问)
学习笔记:第三章 寄存器(内存访问)
1.字在内存中存储时,要用两个地址连续的内存单元来存放。字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。我们将起始地址为n的字单元为n地址单元。
2.[address]表示一个偏移地址为address的内存单元。
用mov指令要存放内存单元时,可以在mov指令中只给出单元的偏移地址,此时,段地址默认在ds寄存器中。
同样的,在debug中使用d命令和e命令(处理内存数据),只需给出单元的偏移地址,段地址默认在ds寄存器中;使用a命令,u命令和t命令(处理指令),只需给出单元的偏移地址,段地址默认在cs寄存器中;
3.传...
1.字在内存中存储时,要用两个地址连续的内存单元来存放。字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。我们将起始地址为n的字单元为n地址单元。
2.[address]表示一个偏移地址为address的内存单元。
用mov指令要存放内存单元时,可以在mov指令中只给出单元的偏移地址,此时,段地址默认在ds寄存器中。
同样的,在debug中使用d命令和e命令(处理内存数据),只需给出单元的偏移地址,段地址默认在ds寄存器中;使用a命令,u命令和t命令(处理指令),只需给出单元的偏移地址,段地址默认在cs寄存器中;
3.传...
阅读全文 |
评论次数(0) |
浏览次数(632) |
所属类型(学习笔记)