汇编语言 [BX]和loop指令

一      .[bx]

1. mov ax,[bx]

bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中。

2. mov [bx],ax

bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将ax中的数据送入内存SA:EA处。

3. inc bx

其表示的含义是bx中的内容加1,比如下面两条指令:

mov bx,1

inc bx

执行之后的结果,bx=2.

二     loop指令

1.  cx中的值影响着loop指令的执行结果。我们用loop指令来实现循环功能,cx中存放循环次数。

2.  loops

CPU在执行loops的时候,要进行两步的操作:

1)(cx)=(cx)-1;

2)   判断cx中的值,不为0则转至标号s所标识的地址处执行(这里的指令是add ax,ax),如何为零则执行下一条指令

3)mov cx,11

s:   add  ax,ax

loop s

执行loops时,首先要将cx减1,然后若cx不为0,则向前转至s处执行add ax,ax所以,可以利用cx来控制add ax,ax的执行次数。

三  段前缀

1:mov ax,es:[bx]

将一个内存单元的内容送入ax,这个内存单元的长度为2字节,存放1个字,偏移地址在地址bx中,段地址在es中。

2:mov ax,ss:[0]

将一个内存单元的内容送入ax中,这个内存单元的长度为2个字节,存放一个字,偏移地址为0,段地址在ss中。

这些出现在访问内存单元的指令中,用于显示地指明内存单元的段地址的es ss在汇编语言中称为段前缀。

原文地址:https://www.cnblogs.com/QiaoGeGe/p/10132967.html

时间: 2024-10-08 21:56:18

汇编语言 [BX]和loop指令的相关文章

汇编语言——[bx]和loop指令

[bx] 由于在编译器中mov AX,[0]指令会被编译器认为是mov AX,0所以引入[bx]的概念 mov [bx],AX的意思是将(ds)*16+(bx)内存位置的值赋给AX 用法和之前的ds[address]一样 小Tips 1 ; [bx]的使用方法 2 mov ax,1000H 3 4 mov bx,2000H 5 6 mov ds,ax ; 将ds数据段寄存器赋值为2000H 7 8 mov [bx],ax ; 将ax寄存器的值赋给内存单元21000H位置 9 10 ; 其他方式

汇编入门学习笔记 (四)—— [BX] 和 loop指令

疯狂的暑假学习之  汇编入门学习笔记 (四)-- [BX]  和 loop指令 参考:<汇编语言> 王爽 第5章 1.[BX] mov al,[1] 在debug中,会把bs:1 中数据赋给al,但在在masm中不会把bs:1 中数据赋给al,而是把 [1] 认为是 1 赋给al. 如果要实现在debug中的mov al,[1],在masm中就需要[bx] 如: mov bx,1 mov al,[bx] 还可以用 bs:[1] 的方式 如: mov al,bs:[1] 2.loop 循环 要使

[bx]和loop指令

1.[bx]的含义 [bx]表示一个内存单元,它的偏移地址在bx中,比如:mov ax,[bx]会将一个内存单元的内容送入ax,这个内存单元的长度是2个字节,存放一个字,偏移地址存放在bx中,段地址在ds中.mov al,[bx]则是移动半个字. 2.loop指令 loop 标号 CPU执行loop指令的时候分两步: 1.(cx)=(cx)-1 2.判定cx中的值,不为零则转至标号出执行程序,如果为0则向下执行. 从上面的描述中,我们可以看到,cx中的值影响着loop指令的执行效果.通常我们lo

王爽《汇编语言》第三版 第五章 [BX]和loop指令

5.1 [bx] mov ax,[bx]功能:bx 中存放的数据作为一个偏移地址EA ,段地址SA 默认在ds 中,将SA:EA处的数据送入ax中. 5.2 Loop指令 指令的格式是:loop 标号,CPU 执行loop指令的时候,要进行两步操作: 1.(cx)=(cx)-1: 2.判断cx中的值,不为零则转至标号处执行程序,如果为零则向下执行. 通常我们用loop指令来实现循环功能,cx 中存放循环次数. 5.3 在Debug中跟踪用loop指令实现的循环程序 5.4 Debug和汇编编译器

小甲鱼零基础汇编语言学习笔记第五章之[BX]和loop指令

这一章主要介绍什么是[BX]以及loop(循环)指令怎么使用,loop和[BX]又怎么样相结合,段前缀又是什么鬼,以及如何使用段前缀. 1.[BX]的概念 [BX]和[0]类似,[0]表示内存单元的偏移地址是0.要完整描述一个内存单元,需要两种信息:内存单元的地址,内存单元的长度(类型).[BX]同样也表示一个内存单元,它的偏移地址在bx中,比如指令:mov ax,[bx].这里我们以一个程序为例: 1 assume cs:codesg 2 codesg segment 3 start: mov

汇编语言学习第五章-[BX]和loop指令

本博文系列参考自<<汇编语言>>第三版,作者:王爽 1.[bx]和内存单元的描述 [bx]与我们前面见过的[0]类似,mov ax,[0] 的意思是将内存地址为DS:0的两字节内容存入ax中.其中[0]中的0代表的是偏移地址. 类似的,我们有 mov al,[0]的意思是将内存地址为DS:0的单字节内容存入al中.那么我们可以大胆的推断mov ax,[bx]代表的是将偏移地址为bx寄存器中的值的内存地址的两字节内容存入到ax中,其段地址在DS中存储. 2.关于定义的描述性符号: &

汇编语言:第五章 [BX]和loop指令

1.[bx]与内存单元 [bx]是指 段地址在DS中,偏移地址在bx中的内存单元 2.loop 用于描述循环 3.我们定义的描述性符号 "()" 寄存器: (ax/al)表示ax/al寄存器中的内容 段寄存器:   ((ds)*16+(bx))表示段地址为ds内容,偏移地址为bx内容的内存单元的内容 内存单元:   (20000H)表示20000H内存单元中的内容 4.约定符号idata表示常量 mov ax,idata 表示mov ax,1 mov ax,2 等 mov ax,[id

实验四 [BX]和loop指令

一.练习1 编写完整汇编源程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0430h. 源程序如下: 运行结果如下: 二.练习2 综合使用loop和[bx],编写完整汇编源程序,实现向内存0:200~0:23f依次传送数据0~63(3FH). 源程序代码如下: assume cs:code code segment mov ax,00020h mov ds,ax mov bx,0 mov cx,64 s: mov [bx],bx inc bx loop s mov ax,4

‘第五章 [BX]和loop指令

<1>[BX] 想要完整地描述一个内存单元,需要两种信息:(1)内存单元的地址(2)内存单元的长度(类型).[BX]和[0]有些相似,表示一个内存单元,它的偏移地址在bx中.指令mov ax,[bx]的功能为将bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据送入ax中,即(ax)=((ds)*16+(bx)).ps:此处的()表示的为括号内寄存器或者内存单元的内容. <2>Loop指令 loop在英语中有循环的含义,所以这个指令应该和循环有关.lo