0

我的程序有问题。除了 mov bx, 0 冻结程序之外,一切都运行良好。此外,dosbox 给出错误:

从 de74395c 非法读取,CS:IP 1a2: 140

我不知道它为什么这样做。我尝试了 loadfix 命令,但没有帮助。有什么建议吗?谢谢你。

LOCALS @@
.386
.model small

.stack 1000h

.code
start:        

check_args:
  call get_argc

exit:
  mov ah, 4Ch
  int 21h

proc get_argc
  mov bx, 0         
  jmp exit
  mov di, 80h       
  mov cx, es:[di]  

  @@L1:
    inc di         
    mov al, es:[di] 
    cmp al, 20h     
    je @@L1        
    cmp al, 09h    
    je @@L1        
    cmp al, 0Dh     
    je @@done       

    inc bx         

  @@L2:
    inc di
    mov al, es:[di]
    cmp al, 20h
    je @@L1
    cmp al, 09h
    je @@L1
    cmp al, 0Dh
    je @@done
        jmp @@L2

    @@done:
        mov ax, bx
        ret
endp

end start
4

1 回答 1

0

.386来错地方了。它必须在指令之后设置(如果有的话)。.model small

于 2014-12-01T16:13:45.117 回答