在汇编中可以使用 loop 段地址:偏移地址 并配合 cx 达到循环执行的目的,但是在一些资料中看到说,cx 是循环的次数,我觉得这是不对的。

比如下面这段代码的作用是使得最终的 ax 中的值为 3

assume cs:code

code segment

start:	sub ax, ax
mov bx, 1
mov cx, 3
lp: add ax, bx
loop lp
code ends
end start
  1. 首先,将 ax 置 0
  2. 将 bx 内容置为 1
  3. 将 cx 的内容置为 3
  4. ax 中的内容加 1,加后 ax 的内容是 1
  5. 进入 loop 指令

loop 指令的执行步骤是这样的

  1. (cx) = (cx) - 1
  2. 判断 cx 中的值,不为零则跳转至标号处继续执行

那么整个 loop 的步骤是

第 1 次

cx = 3 - 1
cx 为 2 大于 0
ax 累加 1,此时 ax 中的值为 2

第 2 次

cx = 2 - 1
cx 为 1 大于 0
ax 累加 1,此时 ax 中的值为 3

第 3 次

cx = 1 - 1
cx 为 0
结束循环,ax 不再继续累加

所以,虽然 cx 开始时被设置成了 3,但是循环的次数并不是 3,而是 2。如果用 c 语言去描述这段汇编的执行顺序应该是

int cx = 3;
int ax = 0; ax++; cx--;
while(cx){
ax++;
cx--;
}

loop 循环次数的更多相关文章

  1. Web前端上万字的知识总结

    下面是自己学HTML+DIV+CSS+JS时的学习笔记,给大家分享以下,相互学习.大二时候寒假在家无聊的时候想做点事,总结了一下web前端基础的东西,下面的每个字都是自己手敲的. 1.<html ...

  2. web前端基础知识总结

    上个寒假总结的web前端的一些知识点给大家分享一下 1.<html>和</html> 标签限定了文档的开始和结束点. 属性: (1)  dir: 文本的显示方向,默认是从左向右 ...

  3. python requests模块使用

    python的网络编程能力十分强大,其中python中的requests库宣言:HTTP for Humans (给人用的 HTTP 库) 在网络编程中,最基本的任务包含: 发送请求 登录 获取数据 ...

  4. HTML—marquee

    滚动标签 支持的属性: 1.align 2.behavior: alternate: 表示在两端之间来回滚动.scroll: 表示由一端滚动到另一端,会重复.slide:  表示由一端滚动到另一端,不 ...

  5. 快速学习html、css的经典笔记

    HTML语言剖析 Html简介-目录 全写: HyperText Mark-up Language  译名: 超文本标识语言  简释:一种为普通文件中某些字句加上标示的语言,其目的在于运用标签(tag ...

  6. html狂记

    由于承接一部分站点优化工作,竟无节操地好几天没有喂博客,好了,今天完成交接工作,马上奉上DIV+CSS传统开发的干货一枚,内容绝非原创,仅是收集.学习.消化.总结.吐出... 基本结构标签: < ...

  7. 上学时的HTML+JS+CSS(小总结)

    html:超文本标记语言 基本标签: { 文本标签:<pre></pre>:原封不动的保留空白区域.      <br />:换行.      <hr wid ...

  8. HTML添加多媒体或音乐

    1,添加多媒体 <embed src="多媒体文件地址" width="多媒体的宽度" height="多媒体的高度" autosta ...

  9. DreamweaverCS6

    1.设置文字的格式:<font face=""></font>  字号<font size=""> 颜色<font c ...

随机推荐

  1. Python中出现的异常

    简单的写几种我知道的关于Python中出现的异常含义,希望大神批评指正,我只是学软件开发的菜鸟,前面的路还很长,我会努力学习! 什么是异常? 异常既是一个事件,该事件会在程序执行过程中发生,影响了程序 ...

  2. js 赋值 要用 toString() ; 太坑了。

    js 赋值 要用 toString() ;     太坑了. js 赋值 要用 toString() ;     太坑了. js 赋值 要用 toString() ;     太坑了.

  3. 3.springMVC+spring+Mybatis整合Demo(单表的增删该查,这里主要是贴代码,不多解释了)

    前面给大家讲了整合的思路和整合的过程,在这里就不在提了,直接把springMVC+spring+Mybatis整合的实例代码(单表的增删改查)贴给大家: 首先是目录结构: 仔细看看这个目录结构:我不详 ...

  4. Java 名词

    Plain Ordinary Java Object    pojo  简单java对象 Constant   常量 Business Object   BO  业务对象 Framework  框架

  5. CSS3 background-size 属性

    http://www.w3school.com.cn/cssref/pr_background-size.asp

  6. WebLogic 中的基本概念

    完全引用自: WebLogic 中的基本概念 WebLogic 中的基本概念 上周参加了单位组织的WebLogic培训,为了便于自己记忆,培训后,整理梳理了一些WebLogic的资料,会陆续的发出来, ...

  7. 手机版 div拖动

    <!doctype html> <html> <head> <title></title> <script type="te ...

  8. XSS的原理分析与解剖(转)

    (转)http://netsecurity.51cto.com/art/201408/448305_all.htm 0×01 前言: <xss攻击手法>一开始在互联网上资料并不多(都是现成 ...

  9. 根目录97 <input file>标签,把图片上传到服务器(跟增删改查一起实现)

    首先来个简单的html页面: enctype="multipart/form-data" encoding="multipart/form-data" acti ...

  10. 安装运行okvis

    1. 安装依赖项 sudo apt-get install cmake   //cmake sudo apt-get install libgoogle-glog-dev  // glog是Googl ...