Отладка ASM в Visual Studio - содержимое регистра не будет отображаться

Я работал над проектом на ассемблере для класса, и, хотя я, наконец, смог разобраться со всеми проблемами в этом коде (я полагаю), теперь я не могу отобразить содержимое регистра.

Вот мой код...

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, или похожие.

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

Щелкните правой кнопкой мыши в окне реестра и выберите UC и все данные, которые вы хотите отобразить.

Другие вопросы по тегам