Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 12:08   #1
Corus
Пользователь
 
Аватар для Corus
 
Регистрация: 27.07.2011
Сообщений: 15
По умолчанию ввод/вывод числа

Доброго времени суток!
Использую masm32. Цель программы - считать строку, перевести в число, затем это число перевести обратно в строку и вывести ее. Логично, что должно выводиться то, что я ввожу. Но программа этого не делает. На ввод 1 она выводит 252.
Кстати, я подумал, что это потому что я ввожу 1 символ, а вывожу 3. (т.к. добавляется возврат каретки и перенос строки). Но тогда в выводимом числе первой цифрой должна быть 1, а это не так.
Поэтому у меня сомнения в работе функции atodw. А может я что-то не так в коде делаю. Прошу помочь.
В асме, признаюсь, слабоват, поэтому пока использую только стандартные функции.

Код:
.const
BSIZE equ 128
frmt db "%d",0

.data
buf db BSIZE dup(?)
myint dd ?
stdout dd ?
stdin dd ?
cRead dd ? ; Число прочитанных символов
cWritten dd ?

.code
Start:
	
	invoke GetStdHandle, STD_OUTPUT_HANDLE
	mov stdout, eax
	
	invoke GetStdHandle, STD_INPUT_HANDLE
	mov stdin, eax
		
NewLine:
	invoke ReadConsole, stdin, ADDR buf, BSIZE, ADDR cRead, NULL
	
	invoke atodw, ADDR buf
	invoke wsprintf, ADDR buf, ADDR frmt, eax

	invoke WriteConsoleA, stdout, ADDR buf, cRead, ADDR cWritten, NULL
	cmp cRead, 2
	jnz NewLine
	invoke ExitProcess, 0
	
END Start
Пол-кода кстати из книги Крупника. И он работал, а добавил свое - перестал...
Corus вне форума Ответить с цитированием
Старый 06.12.2011, 15:38   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

atoi - Перевод строки в число
itoa - Обратное

Последний раз редактировалось coNsept; 06.12.2011 в 15:41.
coNsept вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод строки и числа, вывод усеченной подстроки - как? olgasssssss Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 08.12.2010 17:28
Ввод с клавиатуры два целых числа без знака и вывод на экран их сумму. gelya_17 Помощь студентам 5 18.10.2010 10:31
[C++] Ввод - вывод AquaticSoul Помощь студентам 0 18.04.2010 20:02
Ввод-вывод Sparky Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 04.10.2009 13:15
Ввод и вывод числа Strogg Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 23.03.2009 17:44