王爽汇编第五章,[bx]和loop指令
王爽汇编第五章,[bx]和loop指令
[bx]和loop指令
[bx]之前我们介绍寄存器的时候,已经很详细的说明过了,bx是偏移寄存器用来索引,那么加上[]表示他是一个内存单元,段地址在ds寄存器中,偏移地址在bx中,计算方式:ds*16 + bx
looploop指令是一个循环指令,他的指令格式是loop 标号,CPU执行loop指令的之后,要进行两个步骤:
- (cx) = (cx) - 1
- 判断cx的值,不为0则转到标号出继续执行程序,直到cx为0才停止。
例子:
计算2的12次方
assume cs:code
code segment
start:
mov ax,2
mov cx,11;循环的次数
s:add ax,ax;在汇编中标号其实代表一个地址.
loop s
;程序退出
mov ax,4c00h
int 21h
code ends
end start
loop和[bx]的联合应用
问题:计算ffff:0 ~ ffff:b单元中的数据的和,结果存放在dx中。
解题思路:
- 这些内存单元都是字节型数据范围在(0~255)中,12个字节的数据不会超过0xFFFF, 所以dx寄存器可以存下。
- 对于8位的数据不能直接加到dx中,所以我们应当采用[bx]寻址。
assume cs:code
code segment
start:;1
mov ax,0ffffh ;设置段寄存器
mov ds,ax
;2
mov bx,0;从ffff:0开始寻址
mov ax,0;sum
;3
mov cx,0bh;循环次数
s: mov al,ds:[bx]
mov ah,0
add dx,ax
inc bx
loop s
;程序退出
mov ax,4c00h
int 21h
code ends
end start
参考文献:
https://blog.csdn.net/qq_39654127/article/details/88698911
王爽汇编第五章,[bx]和loop指令的更多相关文章
- [汇编学习笔记][第五章[BX]和loop指令]
第五章[BX]和loop指令 前言 定义描述性符号“()”来表示一个寄存器或一个内存单元的内容,比如: (ax)表示ax中的内容,(al)表示al的内容. 约定符号ideta表示常量. 5.1 [BX ...
- 第五章 [BX]和loop指令
5.1 [bx] [bx]是什么 和 [0] 有些类似,[0] 表示内存单元,它的偏移地址是 0. 例如: mov ax, [0] 内存以字节为单位:ax以字(16bit = 2Byte)为单位:al ...
- [汇编语言]-第五章[bx]和loop指令
1- [bx]和内存单元的描述 [0]表示内存单元, 他的偏移地址为0 mov ax,[0] 将一个内存单元的内容送入到ax.这个内存单元的长度为2字节(字单元),存放一个字,偏移地址为0,段地址在d ...
- 80806汇编(5)——[BX]和Loop指令
80806汇编(5)--[BX]和Loop指令 已经好久没写点东西了,国庆节就一直想弄个个人网站,这段时间一直在弄那个,虽然有现成的框架(Hexo),但是总想弄出自己的效果来,但是最后还是有些差强人意 ...
- 王爽汇编第十章,call和ret指令
目录 王爽汇编第十章,call和ret指令 call和ret指令概述: ret和retf ret指令 retf指令 call 和 ret 的配合使用 call指令详解 call原理 call指令所有写 ...
- 汇编语言-[BX]和loop指令
汇编语言-[BX]和loop指令 [BX]指令介绍 mov ax,[bx] 功能: bx为偏移地址,段地址默认为ds.因此,上面指令作用就是将ax中的数据送入内存ds:bx处,即:((ds)*16 + ...
- 小甲鱼零基础汇编语言学习笔记第五章之[BX]和loop指令
这一章主要介绍什么是[BX]以及loop(循环)指令怎么使用,loop和[BX]又怎么样相结合,段前缀又是什么鬼,以及如何使用段前缀. 1.[BX]的概念 [BX]和[0]类似 ...
- 汇编学习笔记(3)[bx]和loop
本文是<汇编语言>一书的学习笔记,对应书中的4-6章. 汇编程序的执行 要想将源代码变为可执行的程序需经过编译.连接两个步骤,WIN7操作系统下需要MASM程序来进行编译连接工作.将MAS ...
- [bx]和loop指令
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
随机推荐
- 关于当前PHP脚本运行时系统信息相关函数
我们的 PHP 在执行的时候,其实可以获取到非常多的当前系统相关的信息.就像很多开源的 CMS 一般会在安装的时候来检测一些环境信息一样,这些信息都是可以方便地动态获取的. 脚本文件运行时的系统用户相 ...
- css3 显示一行内容,多余的以省略号显示
overflow: hidden; white-space: nowrap; text-overflow: ellipsis; 代码如上
- Jmeter系列(18)- 八大组件
说明 取样器(Sampler):不与其他元件发⽣交互的作⽤的元件 逻辑控制器(Logic Controller):只对其⼦节点的sampler有效,⽽其他元件需要与sampler等元件交互 前置处理器 ...
- Mybatis中使用级联查询,一对多的查询
一.需求描述 自己在开发一个小程序的过程中,需要做的一个查询是稍微比较复杂的查询,根据用户信息去查询用户所对应的宠物信息. 一个用户可能对应多个宠物,所以在用户和宠物信息的对应关系就是一对多的关系. ...
- win10 移动端 android 测试环境搭建
一.移动端自动化测试的基础环境配置1:安装Java环境 关于安装Java环境以及相关环境变量的配置在我之前的博文分享中已有详细介绍,有需要的可以直接查找翻阅,这里就不再一一介绍. 二.移动端自动化测试 ...
- Java 知识点 列表
* Java SE Java开发基础 Java异常处理 Java泛型与反射 Java IO基础 JUnit单元测试 Java多线程开发 Maven基础 https://www.yiibai.com/ ...
- [转载]php连接postgreSQL数据库及其操作(php5,postgreSQL9)
数据库连接:dbconn.php<?php$conn = pg_connect("host=localhost port=5432 dbname=myd user=postgres p ...
- P4590-[TJOI2018]游园会【dp套dp】
正题 题目链接:https://www.luogu.com.cn/problem/P4590 题目大意 给出一个长度为\(m\)的字符串\(s\). 对于每个\(k\in[0,m]\)求有多少个长度为 ...
- Qt和JavaScript使用QWebChannel交互一——和Qt内嵌网页交互
Qt和JavaScript使用QWebChannel交互一--和Qt内嵌网页交互 目录 Qt和JavaScript使用QWebChannel交互一--和Qt内嵌网页交互 前言 一.效果 二.实现过程 ...
- 从零入门 Serverless | 教你使用 IDE/Maven 快速部署 Serverless 应用
作者 | 许成铭(竞霄) 阿里云开发工程师 SAE 应用部署方式 1. SAE 概述 首先,简单介绍一下 SAE.SAE 是一款面向应用的 Serverless PaaS 平台,支持 Spring C ...