在汇编中可以使用 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. nagios二次开发(六)---nagiosql原理及主要文件的介绍

    nagiosql的入口文件:index.php,这也是所有php程序的入口文件.是由apache指定的. index.php 文件的开始引入了 require("functions/prep ...

  2. Servlet学习一

    Servlet担当着客户请求(Web浏览器或其它HTTP客户程序)与服务器响应(HTTP服务器上数据库或应用程序)的中间层.Servlet是位于Web服务器内部的服务器端Java应用程序,与传统的从命 ...

  3. add number

    // io.cpp #include <iostream> int readNumber() { std::cout << "Enter a number: &quo ...

  4. CentOS6.5源码安装python3.5.2

    前提: 1.实现自动补全需要安装模块 readline-devel (yum install -y readline-devel) 2.实现支持SSL协议需安装模块 openssl-devel (yu ...

  5. 循序渐进Python3(十)-- 3 -- SqlAlchemy

    使用sqlalchemy 创建外键关联 ), ), ) host_user = Column(String(), ), ), ]).first()for item in works.workinfo: ...

  6. 国内最给力五大免费VPN商家

    国内有很多提供免费VPN的商家,水平也是参差不齐,有的用心服务,为客户提供优质免费VPN线路,进而赢得客户的信任.有的则对免费线路敷衍了事,只对付费线路“尽职尽责”,从而流失大量潜在VIP客户. 笔者 ...

  7. 破解excel密码保护

    破解excel密码保护 录制一个新宏.内容如下.保存后运行,点几次确定,过一分钟还会再弹出来,再点确定,然后就好了. Public Sub AllInternalPasswords() ' Break ...

  8. Unity使用Windows弹窗保存图片

    此功能都在类EditorUtility中(using UnityEditor;) 包括 OpenFilePanel打开文件窗口Displays the "open file" di ...

  9. 安装YouCompleteMe

    1. from software center 1 $ apt-get install vim vim-youcompleteme vim-addon-manager 2 $ vam install ...

  10. js 让浏览器全屏模式的方法launchFullscreen

    浏览器全屏模式的启动函数requestFullscreen仍然需要附带各浏览器的js方言前缀 // 判断各种浏览器,找到正确的方法 function launchFullscreen(element) ...