一个程序执行的过程:
编写汇编源程序->
对源程序进行编译连接,产生目标文件;再用连接程序对目标文件进行连接生成可执行文件->
在操作系统中执行程序
伪指令
汇编指令是对应的机器码的指令,称为机器指令
伪指令由编译器执行的指令
segment …ends
[bx]
[bx]同样也表示一个内存单元,mov ax, [bx] 将内存单元的内容作为偏移地址,单元长度为2字节
() 表示一个寄存器或者一个内存单元中的内容
3种类型
- 寄存器名
- 段寄存器名
- 内存单元地址
loop指令
loop指令执行要进行两步操作
- (cx) = (cx)-1
- 判断cx中的值是否为0,为0则向下执行
计算2^11
assume cs:codes
codes segment
mov ax,2
mov cx,11
s: add ax,ax
loop s //是标号
mov ax,4c00h
int 21h
codes end
end
debug与masm对mov al,[0]解释
debug是把[idata]解释为【idata】是一个内存单元,idata是内存单元的偏移地址
masa把【idata】解释为idata
简单办法
mov al,ds:[0] == (al) = (ds*16+0)
计算loop和[bx]
计算ffff:0~ffff:b单元中数据和,结果存储在dx中
会面临两种问题