powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Программирование в Ассемблере
5 сообщений из 30, страница 2 из 2
Программирование в Ассемблере
    #38026099
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
djmalinaWhite OwlНу хоть иногда мозги включать же надо?!

djmalina,
У тебя в ассемблерном коде написано:
Код: plaintext
MOV res, BX
Спрашивается, каким образом res может содержать больше значащих бит чем 16-и битовый регистр???
Насколько я понимаю, нужно сделать так:
1. В начале написать следующее в коде asm:
res1 DD ?Зачем? Ты можешь логически обосновать зачем ты это делаешь?

djmalina2. Затем уже в С++ сделать вот так:
mov_16();
if (res1>32767 || res1<-32768) return;
else res=(short int)res1;
printf("Assembler_res: %d\n", res);
if (ost1>32767 || ost1<-32768) return;
else ost=(short int)ost1;
printf("Assembler_ost: %d\n", ost);
getch();Еще раз спрашиваю: зачем?

djmalinaТак должно работать?Кому должно?
...
Рейтинг: 0 / 0
Программирование в Ассемблере
    #38026155
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlНу хоть иногда мозги включать же надо?!

djmalina,
У тебя в ассемблерном коде написано:
Код: plaintext
MOV res, BX
Спрашивается, каким образом res может содержать больше значащих бит чем 16-и битовый регистр???
Точно, какой-то я невнимательный :)
...
Рейтинг: 0 / 0
Программирование в Ассемблере
    #38026209
djmalina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XDiaBLoWhite OwlНу хоть иногда мозги включать же надо?!

djmalina,
У тебя в ассемблерном коде написано:
Код: plaintext
MOV res, BX
Спрашивается, каким образом res может содержать больше значащих бит чем 16-и битовый регистр???
Точно, какой-то я невнимательный :)
В начале написать следующее в коде asm:
res1 DD ? И вот таким образом res может содержать больше значащих бит чем 16-и битовый регистр.
...
Рейтинг: 0 / 0
Программирование в Ассемблере
    #38026328
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там как бы в исходном посте не понятно как переменные a,b, d получают свои значения и непонятно как функция возвращает результат.

MSDNAll arguments are widened to 32 bits when they are passed. Return values are also widened to 32 bits and returned in the EAX register, except for 8-byte structures, which are returned in the EDX:EAX register pair. Larger structures are returned in the EAX register as pointers to hidden return structures. Parameters are pushed onto the stack from right to left. Structures that are not PODs will not be returned in registers.

The compiler generates prolog and epilog code to save and restore the ESI, EDI, EBX, and EBP registers, if they are used in the function.
...
Рейтинг: 0 / 0
Программирование в Ассемблере
    #38043323
djmalina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема решена, тему можно закрыть.
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Программирование в Ассемблере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]