Целочисленное значение MASM StdOut вместо представления ASCII - PullRequest
0 голосов
/ 18 апреля 2011

Я пишу о своих первых ассемблерных программах на MASM и пытаюсь распечатать число, используя StdOut. Вот мой код (фрагмент):

.data
Su dword 0
.code
start:
        mov Su, 65
        invoke StdOut, addr Su
        invoke ExitProcess, 0
end start

Проблема в том, что вместо распечатки 65 выводится представление ASCII A. Как я могу заставить его распечатать целое значение?

1 Ответ

2 голосов
/ 18 апреля 2011

StdOut принимает строковый аргумент, поэтому вам нужно преобразовать двойное слово в десятичную строку. Это не сложно сделать вручную, или вы можете найти библиотечную функцию, чтобы сделать это. Обсуждение на http://www.masm32.com/board/index.php?topic=16316.0 может предложить один из dwtoa, itoa или crt_itoa, в зависимости от того, с какими библиотеками вы связываетесь. (Обратите внимание, что ссылка говорит об ascii-> integer, поэтому она использует atoi и atodw.)

...