Отладчик всегда выдает ошибку на второй процедуре - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь отладить свою программу, чтобы справиться с проблемой HW.Проблема HW не имеет отношения к проблеме, поскольку я протестировал ее с 2 отдельными процедурами.

По существу, когда я пытаюсь отладить, я могу установить точку останова для первой процедуры, и она будет работать нормально.

Точка останова на второй процедуре будет через ошибку.

Код компилируется просто отлично.

Код прекрасно работает только с одной процедурой, и я протестировал основные процедуры.

INCLUDE Irvine32.inc
.386
.model flat,stdcall
.stack 4096
ExitProcess proto,dwExitCode:dword

.data
    myString BYTE "Hello World",0dh,0ah

.code
main proc

    ;------DigitValue2ASCII-----
DigitValue2ASCII proc
    mov eax, 0000h
    mov edx, 0ch 
    mov al, 00h
    cmp dl, 0ah
    jae letter
    cmp dl, 0ah
    jb number
    letter: add dl, 37h
    jmp final
    number: add dl, 30h
    final: mov al, dl
    call writechar

    mov eax, 0000h
    mov edx, 09h
    mov al, 00h
    cmp dl, 0ah
    jae letter1
    cmp dl, 0ah
    jb number1
    letter1: add dl, 37h
    jmp final1
    number1: add dl, 30h
    final1: mov al, dl
    call writechar

    ret
DigitValue2ASCII endp

WriteHexByte proc
    mov eax, 00h
    ret
WriteHexByte endp



call DigitValue2ASCII   


invoke ExitProcess,0
main endp
end main

Ошибка

'Project.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ucrtbase.dll'. Symbols loaded.
'Project.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'. Symbols loaded.
The thread 0x2cd0 has exited with code 0 (0x0).
The thread 0x4f7c has exited with code 0 (0x0).
The thread 0x13a4 has exited with code 0 (0x0).
The program '[18384] Project.exe' has exited with code 57 (0x39).```

1 Ответ

0 голосов
/ 15 апреля 2019

Мне пришлось переместить процедуры ниже main endp вместо значений между main proc и main endp

...