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 に答える