Как я могу изменить переменную в ASM, кажется, ничего не работает?

#assembly #visual-c #reference #x86 #inline-assembly

# #сборка #visual-c #ссылка #x86 #встроенная сборка

Вопрос:

Итак, вот мой код, я пытаюсь установить для a_character значение ecx, мое зашифрованное письмо. я не получаю никаких ошибок, но переменная не изменится.

 void get_char(charamp; a_character)
{
  a_character = (char)_getwche();
  if (a_character == 'r' || a_character == 'n')  // allow the enter key to work as the terminating character too
  {
    a_character = dollarchar;
  }

  __asm
  {

      cmp     ecx, '[';
      jb      RANGE_C;
      jge     RESUME;

  RANGE_C:   cmp     ecx, '@';
      ja      LOWER;
      jle     RESUME;

  LOWER:     ADD    ecx, 32
      JMP    RESUME;

RESUME:
  mov         a_character, ecx

    
      

  }


}

 

Комментарии:

1. char amp;a_character вероятно, работает как указатель из asm. Возможно, было бы проще вернуть char значение by .

2. Кроме того, ecx даже ничего не установлено, а a char — это 1 байт, а не 4.