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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2012, 12:52   #1
gbgtwrfgtw
Новичок
Джуниор
 
Регистрация: 21.03.2012
Сообщений: 1
Восклицание Код программы Ассемблер!:(

у меня такая просьба помогите разобраться в коде а точнее распишите что означает каждая команда и что происходит в данном коде ?:
Текст программы a:

Код:
com  segment
     assume cs:com, ds:dat

begin:
       mov  ax, dat
       mov  ds, ax
       mov  ah, 09h
       mov  dx, offset var
       int  21h
       mov  ah, 4Ch
       int  21h
com ends

dat segment
     var db 'Hello world$'
dat ends

stk    segment   stack
       dw   100 dup(?)
stk    ends

end    begin


	Текст программы b:

Code segment
     assume cs:Code, ds:Data1, es:Data2
begin:
       mov  ax, Data1
       mov  ds, ax
       mov  ax, Data2
       mov  es, ax

       mov  ax, [ds]:var1
       add  ax, [ds]:var2
       sub  ax, 15
       mov  [es]:var3, ax

       mov  ax, 4c00h
       int  21h

Code ends
Data1       segment
       var1 dw   10
       var2 dw   20
Data1       ends
Data2       segment
       var3 dw   ?
Data2       ends
Stk    segment   stack
       dw   100 dup(?)
Stk    ends
end    begin

Последний раз редактировалось ACE Valery; 21.03.2012 в 13:06.
gbgtwrfgtw вне форума Ответить с цитированием
Старый 21.03.2012, 15:22   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Код:
com  segment
     assume cs:com, ds:dat

begin:
       mov  ax, dat ;Инициализируем DS
       mov  ds, ax ;адресом сегмента данных

       mov  ah, 09h 
       mov  dx, offset var ; устанавливаем необходимые смещения
       int  21h ; вызываем 9-ю функцию 21го прерывания - вывод на экран строки
 
       mov  ah, 4Ch
       int  21h ; выходим из программы
com ends

dat segment
     var db 'Hello world$'
dat ends

stk    segment   stack
       dw   100 dup(?)
stk    ends
end    begin
Задача в общем-то элементарная... читайте побольше литературы)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 21.03.2012, 15:56   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

исходная задача, имхо, стоит примерно так,
в сегменте данных 1 заданы две переменных var1 и var2
вычислить var1 + var2 - 15
результат поместить в переменную var3, расположенную в сегменте данных 2
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблер, ASCII код в восьмеричной системе FishTornado Помощь студентам 0 08.10.2011 18:58
проверьте код программы (ассемблер) Стас_с Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 06.07.2011 21:30
Перевести в код на Ассемблер dimon305 Помощь студентам 0 18.05.2010 20:07
Ассемблер. Com программы. HD-boy Помощь студентам 1 16.02.2010 08:39
написать ассемблер-программу,выводящую на экран скан-код sashok2009 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 08.06.2009 22:11