Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > как сложить два числа


Автор: _sten_ 15.12.2007, 12:10
Вобщем немогу розобратся в простейшем... Помогите!
Делаю так:
Код

.data?
A1 byte ?
B1 byte ?
....
.code
.....
    invoke GetWindowText,hwndEdit1,addr A1,255
    invoke GetWindowText,hwndEdit1,addr B1,255
    mov al, A1
    add B1 , al
    invoke    MessageBox,hWnd, addr B1,addr MessageName,MB_ICONINFORMATION
....

и месаджбокс выводит не ожидаемое 3 а "b". 

PS: компилятор masm32, платформа WinXP

Автор: dumb 15.12.2007, 18:32
знаешь чем число отличается от строки? ты складываешь коды символов '1'(31h) и '2'(32h). получаешь 63h - код символа 'c'(а не 'b', кстати).
GetWindowText возвращает строку, а не числа, поэтому и буфер ей надо передавать не из одного байта, и правильно указывать размер этого буфера. ты же даешь ей однобайтовый буфер, а размер указываешь - 255.

Автор: _sten_ 15.12.2007, 20:49
А правильно сделать как? Как страку в число перевезти?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)