写个超简单程序

向内存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)寄存器。

编译

【笨鸟先飞 汇编挖坑】第五天
连接
【笨鸟先飞 汇编挖坑】第五天
跟踪
【笨鸟先飞 汇编挖坑】第五天

相关文章: