学习笔记-汇编-双层循环

汇编中 循环的语法是               C语言中的循环

mov cs,N        //循环最大次数    <----->    int i=N;

blockName:    //循环开始    <----->     for(;i>0;i++){

  //xxx。。。    //循环中的语句      <----->      //XXXX

loop blockName   //循环结束     <----->    }

另附上汇编示例代码

 1 assume cs:code
 2 code segment
 3 start:
 4 mov cx,3
 5 mov ax,1
 6
 7 s:
 8  sub ax,2
 9  mov bx,cx ;备份外层循环次数
10  mov cx,2    ;给内层循环次数赋值
11  n:              ;内层循环开始
12   add ax,1
13   loop n        ;内层循环结束
14  mov cx,bx   ;恢复外层循环次数
15  loop s         ;外层循环结束
16 int 21h
17 code ends
18 end start
19    

loop X 的作用其实只是将当前 CS:IP 中的IP

赋值为当前X的地址 从而实现跳转

当然跳转之前会将寄存器cx的值减1

若CX的值为0 则跳出循环

寄存器变化:

图1-loop循环寄存器的值

时间: 2024-10-31 09:59:41

学习笔记-汇编-双层循环的相关文章

2014年7月17日学习笔记--PHP的循环结构学习

今天重新开始学习PHP, 为了学习PHP买了书,但书是一本大部头的书,不好带一直没有好好学习,我决定把书拆了分章来看,这样也方便带 也可以很快完成任务. 今天在linux mint 17上安装了lnmp 环境 和brackets工具,来学PHP,小的例子用vim来完成的. 记录一下自己美化的九九乘法表 代码如下: <?php     for($i=1;$i<=9;$i++){         for($j=1;$j<=9;$j++){             if($i>=$j){

Swift学习笔记五:循环和条件语句

一.循环语句 1. for循环 1) for -in 循环,对于数据范围,序列,集合等中的每一个元素,都执行一次 for a in 0...5{}    //循环迭代,从a=0到a=5,执行{}里的代码 注意:a只循环中存在,也就是出了{}a就不存在了 或者遍历数组 let a = [1,2,3] for b in a{} //循环迭代,从b=1到b=3 如果你不需要序列中的每一个值,可以使用_来忽略它,仅仅只是使用循环体本身: for _ in 0...5{}    //循环执行{}里的代码,

python学习笔记之-for循环

for循环需要预先设定好循环的次数(n),然后执行隶属于for的语句n次. 基本构造是 for 元素 in 序列: statement 举例来说,我们编辑一个叫forDemo.py的文件 for a in [3,4.4,'life']: print a 这个循环就是每次从表[3,4.4,'life'] 中取出一个元素(回忆:表是一种序列),然后将这个元素赋值给a,之后执行隶属于for的操作(print). 介绍一个新的Python函数range(),来帮助你建立表. idx = range(5)

python 学习笔记之条件循环等语句

赋值语句 普通赋值: >>> x,y,z = 1,2,3>>> print x,y,z1 2 3>>> x,y = y,x>>> print x,y2 1 元组(序列)解包赋值: >>> a = (1,2,3)>>> x,y,z = a>>> x1 字典赋值: >>> people = {"name":"cq","

AT&amp;T学习笔记汇编之控制指令

跳转 jmp label call addresss 调用函数先将eip入栈,eip指向函数的地址 esp直接使用栈中的数据 push pop引用堆栈中的数据 程序通常把esp复制到ebp在使用ebp获取call指令之前传递给栈的信息. function_label: pushl %ebp movl %esp , %ebp <...normal code...> movl %ebp , %esp popl %ebp ret eflags 0 carry  借位 错位 11 overflow 溢

lua学习笔记---选择,循环语句

选择语句 形式: 1> if 条件 then 分支 end 注:括号可以去掉 2> if 条件 then 分支1 else 分支2 end 3> if 条件1 then 分支1 elseif 条件2 then 分支2 end 2. 循环语句 1> while循环 注:没有自减,自加了 2> for循环 形式:for 初始值,最终值,步进 do 分支 end 步进可选:若没有步进,默认的情况下为1: 注解:i从0开始,每次加1 ,直到 i = 4,执行print 5次:for循

Pythian学习笔记6:循环对象

 以前总想着集中时间来学东西,经过这次国庆假期发现这TM根本就不现实啊,还是每天抽点时间,日积月累这样比较好. 一.循环对象 循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式. 循环对象是这样一个对象,它包含有一个next()方法(__next__()方法,在python 3x中), 这个方法的目的是进行到下一个结果,而在结束一系列结果之后,举出StopIteration错误. 当一个循环结构(比如for)调用循环对象

AT&amp;T学习笔记汇编之内核

内核组成: 内存管理 设备管理 文件系统管理 进程管理 内存管理: 虚拟内存 交换空间 页面(块) cat    /proc/meminfo ipcs    -m 设备管理: 硬件管理  内核模块(kernel module) unix文件:字符,块,网络 设备文件被创建为节点,内核唯一数字标识.(主次设备号).相似设备的 主设备号相同,次设备号用于标识主设备号相同的设备. 文件系统 进程管理 init第一个进程. 系统调用  /usr/include/asm/unistd.h ebx    第

Python 2.7 学习笔记 条件与循环语句

本文介绍下python条件和循环语句的语法 一.if条件语句 语法格式如下: if 表达式: .... elif 表达式: .... elif 表达式: .... else: ..... 说明:与其它语言的语法区别是,表达式或else后面要加 冒号 结尾. 语句块没有用一些标识符括起来,而是靠缩进来标记. 二.while循环 语法格式是: while 表达式: ........ 三.for循环 for循环用于遍历一个集合,语法格式是: for  元素  in  集合 ........ 举例如下: