|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Сложение двух двойных слов
Я написал программу на ассемблере, которая должна складывать два двойных слова. Программа запускается но ничего не отображает.
Код:
.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
|
||||
|
||||
Скомпилированный файл покажи, в дебаге посмотрю...
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#3
|
|||
|
|||
Это файл с расширением OBJ?
|
#4
|
||||
|
||||
Ничего не отображает - а должно? Где вывод? И зачем инт 9, это же аппаратное прерывание всегда было.
jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
|||
|
|||
Я не знаю. А что вы думаете?
|
#6
|
||||
|
||||
Мда. Мог бы и разобраться в коде, который выкладываешь. 9е прерывание дос вроде на клавиатуру направляет, вызывать его руками бесполезно, как любое другое из аппаратных (с номером меньше 16). Для вывода символа есть видеосервис биос (16 номер) и функции дос (33 номер). Подробнее в гугле. Число перед выводом надо руками превратить в строку. Алгоритмы опять же можно найти в гугле, на си/делфи запросто, а потом перевести на асм.
jmp $ ; Happy End! The Cake Is A Lie. |