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

发布者:annye_cheng最新更新时间:2016-06-24 来源: eefocus关键字:汇编入门  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

 

循环 要使用 loop指令

例子:计算2^20

 

  1. assume cs:codesg  
  2.   
  3. codesg segment  
  4. start:  mov ax,0  
  5.     mov cx,20  
  6. s:  add ax,2  
  7.     loop s  
  8.           
  9.     mov ax,4c00H  
  10.     int 21H  
  11. codesg ends  
  12.   
  13. end start  


 

cx 存放 循环的次数,每次循环减1

s是标号 可以任意取名,表示循环的开始处,loop 跳转到s处,可以用debug单步调试看到 上面代码,loop s其实就是 loop  0006H

 

3.debug 中loop调试

 

可以用 -g 000B (安装上面代码的调试)运行到指定代码停止,来跳出循环。

或者在循环中直接用 -p 来跳出循环

 

4.一段安全空间

 

一般情况下 DOS中 0:200H~0:2ffH 空间 没有系统或者其他程序的数据或者代码,可以使用。

 

 

5.段前缀的使用

 

前面的mov al,bs:[1]

 

这里bs: 叫做段前缀

 

不仅bs可以

 

mov ax,ds:[bx]

 

mov ax,cs:[bx]

 

mov ax,ss:[bx]

 

mov ax,es:[bx]

 

都可以

 

例子:把内存 ffff:0~ffff:b 单元中的数据复制到  020:0~020:f 中。

 
  1. assume cs:codesg  
  2.   
  3. codesg segment  
  4.   
  5. start:  mov ax,0ffffh  
  6.     mov ds,ax  
  7.       
  8.     mov ax,0020H  
  9.     mov es,ax  
  10.       
  11.     mov cx,12  
  12.     mov bx,0  
  13. s:  mov al,ds:[bx]  
  14.     mov es:[bx],al  
  15.     inc bx  
  16.     loop s  
  17.       
  18.     mov ax,4c00H  
  19.     int 21H  
  20.   
  21. codesg ends  
  22.   
  23. end start  

关键字:汇编入门  loop指令 引用地址:汇编入门学习笔记 (四)—— [BX] 和 loop指令

上一篇:汇编入门学习笔记 (五)—— 包含多个段的程序
下一篇:汇编入门学习笔记 (三) —— 第一个程序

推荐阅读最新更新时间:2024-03-16 14:58

FLIR T640bx热像仪实现对热成像无人机的空中记录
最近几十年来,热成像已经成为工业和建筑行业的一个重要话题。该领域的一项最新发展包括空中热成像检测。热像仪与无人驾驶飞机相结合,尤其能够用于检测光伏系统。同时,热成像无人机还可对无法靠近的建筑或电线进行热成像检测,可应用于消防和执法工作。这项技术还可用于其他工业领域:研发、领先的航空考古学,或对自然及动物的观察。 使用无人驾驶飞机之前,只能从海拔较高的位置和建筑通过空中工具或可升降的摄影三脚架,对大型光伏系统全貌进行热像检测,但所耗精力极大,且极不灵活。瑞士emitec Messtechnik AG公司的Beni Riedi对此非常不满,因此提出使用热像仪无人驾驶飞机来检测光伏系统和大型建筑。 搭载FLIR T640bx热像仪的
[测试测量]
FLIR T640<font color='red'>bx</font>热像仪实现对热成像无人机的空中记录
51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码
1. 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称。目前教科书基本都是以早期的MCS-51为原型,讲解微机的原理及其接口技术的。早期的51单片机功能都较弱,需扩展rom,ram等才能组成一个较复杂的系统。而现今流行的8位51单片机都比早期芯片作了较多的功能扩展,性能强劲。生产51单片机的厂家有很多,像atmel的at80c51系列,华邦w78c051系列,宏晶stc80c51系列等,其中台湾宏晶stc系列51单片机在国内尤为流行。因此,笔者采用宏晶性价比较高的一款51单片机stc12c5a60s2来作开发讲解。该款51单片机已经是宏昌第N代产品了,其主要特征如下: 1.1. 增强型8051 CP
[单片机]
51单片机开发系列一-51单片机开发环境搭建以及<font color='red'>入门</font><font color='red'>汇编</font>代码
汇编入门学习笔记 (二)—— 寄存器(内存访问)、栈
疯狂的暑假学习之 汇编入门学习笔记 (二) 参考:《汇编语言》 王爽 第三章 一、寄存器(内存访问) 1.DS和 DS 数据段寄存器,用来存放数据段地址 用来表示数据段的偏移地址 同样跟CS一样,不可以通过 mov ds, 1000 给ds赋值 要通过通用寄存器ax等。 例如: mov ax, 1000 mov ds, ax mov al, 把1000:0的内容存进al mov bx, 1000 mov ds, bx mov , al 把al写进1000:0中
[单片机]
ARM汇编语言入门(七)
Part 7:栈和函数 在这一部分我们来看一下进程中叫做栈的内存区域。本章涵盖了栈的用途和相关操作。此外我们将介绍 ARM 中函数的实现、类型和差异。 栈 一般而言,栈就是进程中的一段内存。这段内存是在进程创建时分配的。我们使用栈来保存一些临时数据,如函数中的局部变量,函数之间转换的环境变量等。使用PUSH和POP指令与栈进行交互。在Part 4:内存指令:加载与存储中我们讲到PUSH和POP是一些其他内存操作指令的别名,这里为简单起见我们使用PUSH和POP指令。 在看实例之前,我们先要明白栈有多种实现方式。首先,当我们说栈增长了,意思是一个数据(32位)被放入了栈中。栈可以向上增长(当栈是按照降序方式实现)或者向下增长
[单片机]
ARM<font color='red'>汇编</font>语言<font color='red'>入门</font>(七)
S3C2416裸机开发系列二_汇编入门代码以及sd卡启动
学习了arm,笔者认为就有必要学习arm的汇编语言。对于软件出错调试,往往需要跟踪c编译器生成的汇编代码和链接器生成的Mapping文件等。对于操作系统,bootloader之类的移植,必须熟悉汇编代码,因为移植涉及到体系结构相关的部分只有汇编代码才能胜任,其它高级语言均无能为力。 1. 流水灯硬件原理图 6个LED分别接到GPA,GPE,GPG,GPL对应的I/O控制引脚上,I/O口由3.3V供电,当对应I/O口输出为1时,则点亮相应的LED,输出为0时,相应的LED灭掉。对于不同的开发板,灯的GPIO口控制不一样,需修改代码的控制口。 2. 工程搭建 打开Keil MDK,版本不是问题,只要能编译armv4指令(arm
[单片机]
S3C2416裸机开发系列二_<font color='red'>汇编</font><font color='red'>入门</font>代码以及sd卡启动
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved