Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Прочие языки программирования > Assembler
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.12.2012, 21:50
MahovIV MahovIV вне форума
Новичок
 
Регистрация: 30.12.2012
Сообщения: 77
Репутация: 10
По умолчанию Сложение двух двойных слов

Я написал программу на ассемблере, которая должна складывать два двойных слова. Программа запускается но ничего не отображает.
Код:
.model     	small            	                      ; модель памяти, используемая для ЕХЕ
.stack     	100h              	                      ; сегмент стека размером в 256 байт
.data
X		dd    1111111h         		;определение данных 
Y   		dd    2222222h
Z  		dd    3333333h
.code
start:          mov	 ax,@data       	           ; сегментный адрес строки message
		mov      ds,ax             	           ; помещается в DS
       		mov      bx, offset x
                mov      ax, [bx]
       		add      ax,[bx+4]
		mov	 [bx+8], ax
        	mov      ax, [bx+2]
       		adc      ax, [bx+6]
		mov	 [bx+10], ax
                int 09h
                mov      ax,4C00h
        		 int 21h               	            ; функция DOS "завершить программу"
        		 end start
Админ: Пользуемся тегами для оформления кода!

В чём проблема?

Последний раз редактировалось Admin, 31.12.2012 в 12:06.
Ответить с цитированием
  #2  
Старый 30.12.2012, 22:06
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Скомпилированный файл покажи, в дебаге посмотрю...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 30.12.2012, 22:31
MahovIV MahovIV вне форума
Новичок
 
Регистрация: 30.12.2012
Сообщения: 77
Репутация: 10
По умолчанию

Это файл с расширением OBJ?
Ответить с цитированием
  #4  
Старый 30.12.2012, 22:52
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Ничего не отображает - а должно? Где вывод? И зачем инт 9, это же аппаратное прерывание всегда было.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 30.12.2012, 22:57
MahovIV MahovIV вне форума
Новичок
 
Регистрация: 30.12.2012
Сообщения: 77
Репутация: 10
По умолчанию

Я не знаю. А что вы думаете?
Ответить с цитированием
  #6  
Старый 30.12.2012, 23:05
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Мда. Мог бы и разобраться в коде, который выкладываешь. 9е прерывание дос вроде на клавиатуру направляет, вызывать его руками бесполезно, как любое другое из аппаратных (с номером меньше 16). Для вывода символа есть видеосервис биос (16 номер) и функции дос (33 номер). Подробнее в гугле. Число перед выводом надо руками превратить в строку. Алгоритмы опять же можно найти в гугле, на си/делфи запросто, а потом перевести на асм.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter