您的位置 首页 传感器

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

疯狂的暑假学习之汇编入门学习笔记(四)——[BX]和loop指令参考:《汇编语言》王爽第5章1.[BX]moval,[1]在debug中,会把b…

张狂的暑假学习之 汇编入门学习笔记 (四)—— [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. assumecs:codesg
  2. codesgsegment
  3. start:movax,0
  4. movcx,20
  5. s:addax,2
  6. loops
  7. movax,4c00H
  8. int21H
  9. codesgends
  10. endstart

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. assumecs:codesg
  2. codesgsegment
  3. start:movax,0ffffh
  4. movds,ax
  5. movax,0020H
  6. moves,ax
  7. movcx,12
  8. movbx,0
  9. s:moval,ds:[bx]
  10. moves:[bx],al
  11. incbx
  12. loops
  13. movax,4c00H
  14. int21H
  15. codesgends
  16. endstart

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/276835.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部