写个超简单程序
向内存0:200~0:23f 依次传送数据 0~63(3FH)
起初的想法:
assume cs:code
code segment
mov ax,0
mov ds,ax ;内存段地址
mov bx,200 ;内存偏移地址
mov cx,40 ;循环次数
mov al,00 ;传送数据
s: mov [bx],al
inc bx
inc al
loop s
mov ax,4c00h
int 21h
code ends
end
过完脑子是这样的:
assume cs:code
code segment
mov ax,20
mov ds,ax
mov bx,0
mov cx,40
s: mov [bx],bl
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
过程中用了大量时间纠错,
三个教训:
- 敲代码之前输入法改英文,shift切不掉的那种
- masm编译会有报错信息
7行错误,error A2048 - 上面的错误:
使用寄存器间接寻址时,只可以使用 BX, BP, SI, DI 这四个寄存器中的一个,不可以使用其它寄存器。
第7行用 [AX] 是错误的。
提示的意思是(方括号里)必须是变址(index,指SI, DI)或基址(base,指BX, BP)寄存器。
编译
连接
跟踪