Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 16
1

Не могу понять что с printf

10.10.2015, 00:46. Показов 2178. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал тестовую прогу состоящую из С и ASM Файла. Из С вызываются функции описанные в asm по декларации С.
Тестю одну из функций, обычное вычитание двух целых чисел. Числа исправно через стек передаются в asm и благополучно вычитаются. Но есть загвоздка с вызовом printf из асма, вместо нужного сообщения он выводит какую то чушь, причем как бы я текст самого сообщения не менял, чушь на экране не изменяется.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
extern "C" cdecl int asmrazn(int,int);
int main()
{
int a,b,razn;
clrscr();
printf("\n Модуль C\n");
printf("\nВведите а и b :\n");
printf(" a=");
scanf("%d",&a);
printf(" b=");
scanf("%d",&b);
razn=asmrazn(a,b);
printf("\nРезультат вычисления (a-b)=%d",razn);
getch();
return(0);
}
Ассемблерный код
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.model large
extrn _printf:far
extrn _getch:far
PUBLIC _asmrazn
 
.CODE
_asmrazn PROC far           ;x:word,y:word
;пролог
push bp
mov bp,sp
mov ax, offset mes1
push ax 
;Вызов станд. функии С printf(mes1)
call _printf
pop ax
;Получить a-b
mov ax,[bp+6]
sub ax,[bp+8]
;Функция возвращает значение через AX
 
    push ax
      call _getch
    pop ax
;эпилог
pop bp
_asmrazn endp
 
.data
mes1 db "Процедура на ассемблере вычитает b из а",10,13,0
end
Добавлено через 15 минут
На экране вот
Миниатюры
Не могу понять что с printf  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2015, 00:46
Ответы с готовыми решениями:

Не могу понять,что не так...Помогите!!
include macro.lib data segment a db 100...

вводятся два числа шеснадцатеричных и преобразуются в двоичное представление. Далее первое (A) делится на 2. Во здесь не могу понять что к чему
Здравствуйте! Сижу парюсь с делениеи уже третий час =( data segment 'data' mess1 db 'Inter...

Добрий вечер !Напишите мне кто-нибудь пожалуйста эту программу с комментариями, чтобы я смогла разобраться, потому что никак не могу понять этот язык
создать файл записей (фамилия клиента, паспортные данные, № счета, сумма вклада) с зашифрованным №...

Не могу понять как исправить ошибку Warning: printf() [function.printf]: Too few arguments in Z:\home\ksards.ru\www\id\1.php on line 76
Помогите связать бд с сайтом я новичок в этом вот код php &lt;?php do { printf(&quot;&lt;div...

2
642 / 151 / 60
Регистрация: 08.04.2015
Сообщений: 390
10.10.2015, 07:35 2
Программа 16-битная для DOS? Модель памяти LARGE? Тогда надо в printf передавать не только смещение, но и сегмент.
1
0 / 0 / 0
Регистрация: 16.01.2014
Сообщений: 16
11.10.2015, 01:09  [ТС] 3
Спасибо, помогло
0
11.10.2015, 01:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.10.2015, 01:09
Помогаю со студенческими работами здесь

Не могу понять, почему программа работает неправильно( Знаю, что где-то ошибки, но не могу найти
{Ввести последовательность натуральных чисел Aj j=1...n (n&lt;=1000). Упорядочить последовательность...

Не могу понять на что способен sort, и что делает его компаратор
Недавно мой знакомый рассказывал что-то про sort,говорил что с помощью него можно сортировать как...

Что-то напутано с настройками ноута, не могу понять что
Доброго времени суток, коллеги. Нужна ваша посильная помощь по вопросу диагностики неполадки...

Есть папка с файлами, происхождение аля что-то microsoft, не могу понять что это такое
Здравствуйте, я занимаюсь веб разработкой, и не шарю в том, что у меня сейчас на руках. Суть в том,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru