Отладка ASM с помощью Visual Studio - содержимое регистра не отображается
Я работаю над проектом ассемблерного языка для класса, и хотя я, наконец, смог проработать все проблемы в этом коде (я считаю), теперь я не могу получить содержимое регистра. /p >
Вот мой код...
include C:\Irvine\Irvine32.inc
.data
;Variables are listed in following order VAR DATATYPE DIGITS[RADIX] with
comments showing binary version of listed digits
left DWORD 321 ;101000001b
right DWORD 4247 ;1000010010111b
total DWORD ? ;uninitialized
diff DWORD ? ;uninitialized
;Define a string called message containing HELLO WORLD!
message BYTE '"Hello world!"'
;Calculate length of Array and move to var ArrayLength
Array WORD 1,2,4,8,16,32,64 ;Array
ArrayLength = ($ - Array) / 2
.code
main PROC
;Move left and right to respective registers
MOV eax,left
MOV ebx,right
;Add left var and right var and store in new var called total and move to
ecx
MOV total,eax
ADD total,ebx
MOV ecx,total
;Subtract left var and right var and store in new var called diff and move
to edx
MOV diff,eax
SUB diff,ebx
MOV edx,diff
;Move Array to esi
MOV esi,ArrayLength
call DumpRegs
exit
main ENDP
END main
При отладке я не получаю сообщений об ошибках, но среда IDE не отображает регистры или их содержимое, которое мне нужно.
Я искал всюду, чтобы попытаться посмотреть, что может быть проблемой, и получил некоторые ответы, и смог найти некоторые сведения об открытии окна регистрации в VS на этом веб-сайте...
https://msdn.microsoft.com/en-us/library/62680774.aspx
Но я попытался найти это окно в своей среде IDE даже после включения отладки на уровне адреса, но безрезультатно. Я не знаю, является ли проблема с установкой или отсутствием окна регистрации в VS2017... любая помощь была бы очень желанной.
Для записи я использую Visual Studio 2017
Я попытался добавить ожидание после call DumpRegs
и даже точку останова, но это просто задерживает прогон и не отображает регистры вообще.
Похоже, что после добавления точки останова
Ответы
Ответ 1
Благодаря @Jester я смог увидеть окно регистров. (Смотрите как использовать окно регистров в документах Visual Studio.)
Это может быть тривиально, но, тем не менее, я укажу его. Чтобы увидеть окно регистрации, вам нужно ввести точку останова перед выходом программы или записать свою программу для ее паузы, используя макрос Irvine wait
или call ReadChar
или аналогичный.
После паузы вы можете попасть в окно регистрации, перейдя в окно отладки окна и окна, и voila, вы увидите содержимое регистра.