本文主要是介绍【汇编】[BX]和loop指令(学习笔记),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、[BX]
利用BX寄存器存储偏移地址与DS配合使用
在DEBUG中可以使用mov al,[0]
,但在ml编译器里面会变成mov al,0
可以使用BX寄存器来解决
mov bx,0
mov al,[bx]
补充
1、使用描述性符号
()
表示取内容2、使用
idata
表示常量
二、loop循环指令
1、loop的概述
需要用到cx寄存器,存储循环次数
每次执行loop时都会进行(cx) = (cx) - 1、判断cx的值
cx为0:直接向下运行;cx非零:跳转到标号处运行。
2、loop的使用
assum cs:code
code segent
start: mov ax,2mov cx,11s: add ax,axloop smov ax,4c00Hint 21h
code ends
end start
3、loop的Debug
1、G 0014
:跳转到0014位置 --> 调过循环
2、P
:执行完循环(步过)
3、D 地址
:查看内存信息
4、U
:查看汇编指令
5、A
:写汇编命令
三、[BX]和loop的联合
DX存储范围:0~65535
- 类型不匹配:(dx) = (dx) + 内存8位data
- 结果越界:(dl) = (dl) + 内存8位data
–> 找一个16位寄存器
累加 => ax => dx
四、短前缀
可以在访问内存单元的指令中显式给出内存单元的段地址所在的段寄存器
mov ax,cs:[0]
mov bx,es:[0]
五、安全空间
DOS中,合法程序的内存范围:0:200h ~ 0:2FFFh
(256字节)
这篇关于【汇编】[BX]和loop指令(学习笔记)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!