【BX】
括号中指其内存地址对应的数据 idata为常数接下来讲解的一些规定:
LOOP
1,CX=CX-1
2,判断CX中的值,为零则向下执行,否则就转到标签程序处。
3,在DEBUG调试程序的时候可以通过G命令设置断点,如
-G 0012 //从cs段的0012偏移处开始追踪
4,DEBUG模式下在循环中,-p命令让程序自动完成循环。(-g亦可)
DEBUG和MASM对指令的不同处理
mov ax,[0] :
在bebug中正常处理
在masm会被当作 mov ax,0进行处理------》可以通过
mov ax,ds:[0]//这种显式表达来访问相应地址的数据
同时注意,当mov ax,[bx]这种情况时均正常,取BX中地址对应的内存数据给ax.
当然可以用显式的方式指定取址时的段寄存器(段地址);
半字节数据相加与越位问题
可以通过:
mov al,ds:[0] //设置使用位
mov ah,0 //设置空位
add dx,ax //使用全位(扩展)向(累加)寄存器添加数据
这里的0在循环体里是一个递增的寄存器idata: 相关指令:inc bx;
一般情况下0:200~02ff这段空间为可操作的安全空间
reference: <汇编语言>王爽
网友评论