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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2009, 21:40   #1
tiger
Пользователь
 
Регистрация: 30.03.2008
Сообщений: 52
По умолчанию

Задали по примеру найти значение выражения по варианту. пробую откомпилировать пример и выдает куча ошибок. что то учителя тут намутили. помогите пожалуйста. только начал ассемблер изучать. пока не получается исправить ошибки.
a = ((a+1)+(c-d)+(d-1))+5-b,
где a= 657, b=265, c=738, d= 273.
Решение
Код:
Data 	Segment 	para 'code'
a    	dw        		657
b      	dw            	265
c      	dw            	738
d    	dw             	273
Data 	Ends
Code    Segment   para 'code'
Main  Proc far
;.................... Основная программа.....................................
Main  Endp
Calc 	Proc  near  	;  Процедура подсчитывания виражения. 
        	mov AX,a  	;  Записать в регістр AX число а. 
        	inc   AX         	;  AX на 1. 
       	mov CX,c        	;  Записати в CX число с.
        	sub  CX,d        	;  CX -d 
        	mov DX,d        	;  Записать в регістр DX число d.  
        	dec  DX           	;  Уменьшить DX на 1. 
        	add  AX,CX      	;  Добавить к  AX 
        	add  AX,DX      	; содержимое CX і  DX. 
        	add AX,5         	;  AX+5. 
        	sub AX,b         	;  AX-b. 
        	mov a,AX        	;  Записать содержимое AX  в  а. 
        	ret                 	;  Возвращение из процедуры 
Calc 	Endp               	;  Директива конца процедури. 
Code    Ends    Main
ну что никто не может помочь? пишет ошибки: Can't address with currently Assumed segment registers, extra characters on line (строка 25), unexpected end of file encountered (строка 26)

Последний раз редактировалось Stilet; 15.10.2009 в 09:19.
tiger вне форума Ответить с цитированием
Старый 14.10.2009, 23:33   #2
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Добавьте строчку
Код:
assume ds:Data,cs:Code
Где-нибудь вначале кода.
А еще должно быть так
Код:
Code Ends
end Main
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 14.10.2009 в 23:36.
Goodwin98 вне форума Ответить с цитированием
Старый 15.10.2009, 00:33   #3
tiger
Пользователь
 
Регистрация: 30.03.2008
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Goodwin98 Посмотреть сообщение
Добавьте строчку
Код:
assume ds:Data,cs:Code
Где-нибудь вначале кода.
А еще должно быть так
Код:
Code Ends
end Main
спасибо. понятно. но, эта программа у меня почему то ничего не считает.. при запуске exe файла только появляется на пол секунды пустое черное окошечко и все. и еще при компилировании обьектного файла писало :Warning No stack. 3 компилятора пробовал, результат один и тот же.. что тут может быть?
tiger вне форума Ответить с цитированием
Старый 15.10.2009, 09:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
у меня почему то ничего не считает
Все она считает - просто ты не делаешь вывод на экран, а если через отледчик запустишь, то все увидишь.
Цитата:
Warning No stack.
Чепуха. Не обращай внимания.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помошь за $ o-la-la Фриланс 1 02.10.2009 15:08
Нужна помощь по ассемблеру. warrior689 Фриланс 5 02.06.2009 00:03
Нужна помощь в написание лабораторной viktorchik Помощь студентам 1 10.03.2007 01:28