计算 ffff:0006 内存单元中的数乘以3,结果存储在dx中
汇编源程序中,数据不能以字母开头
9138H
可以直接写 9138H
A000H
必须写成 0A000H
编译 连接 跟踪
- masm
- link
- debug
p3.asm 循环3次
assume cs:code
code segment
mov ax,0ffffH
mov ds,ax
mov bx,6
mov al,[bx]
mov ah,0
mov dx,0
mov cx,3
s: add dx,ax
loop s
mov ax,4c00H
int 21H
code ends
end
内存单元 字节型8位数据 传递到 16位寄存器AX
mov al,[bx]
mov ah,0
-
8位自然填不满16位,那就填到低8位,并让多余的高8位填上零
Loop指令的作用
-
loop 0012H
会将IP寄存器
设置为0012H
使得CS: IP
指向ADD dx,ax
p4.asm 循环123次
...
mov cx,123
...
-
执行命令
g 0012
,那么CS:0012
前的程序段被执行
再次遇到
loop指令
时,使用p命令
来执行,debug
就会自动重复执行循环中的指令 知道(cx)=0
为止如图,一定是遇到
loop指令
,遇到ADD指令
时用p命令
是没有效果的也可以使用
g 命令
直接跳到这一条指令