Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Assembler_Простая программа

3.3K
26 марта 2007 года
Nethead
88 / / 24.11.2006
Разработать программу на ассемблере реализующую указанную формулу, исполниь программу с несколькими (три - четыре) наборами исходных данных, проверить правиьность результатов. X=2B-1+4(A-3C)
274
26 марта 2007 года
Lone Wolf
1.3K / / 26.11.2006
Что такое А, B,C? Байты, слова, двойные слова? Целочисленые значения или с плав. точкой(подразумевает использывание мат. сопроцессора)

P.S. Тему в "студенты"!
3.3K
26 марта 2007 года
Nethead
88 / / 24.11.2006
Цитата: Lone Wolf
Что такое А, B,C? Байты, слова, двойные слова? Целочисленые значения или с плав. точкой(подразумевает использывание мат. сопроцессора)

P.S. Тему в "студенты"!



байты

622
26 марта 2007 года
nilbog
507 / / 19.12.2006
какой ассемблер )
Код:
mov bl,a
mov al,c
mov ah,0
mov cl,3
mul cl
sub bl,al
mov al,bl
mov cl,4
mul cl
sub al,1
mov x,al
mov al,b
mov cl,2
mul cl
add x,al

вот фрагментик для масма
переменные байтовые беззнаковые
274
26 марта 2007 года
Lone Wolf
1.3K / / 26.11.2006
только тут надо учеть что операция mul проводимая над байтами вернет слово(3*120=360. 120 -байт 360 -слово). По этому внимательно нужно следить за входными данными. Что-бы быть увереным, что результат будет байтом. Иначе ,как я вижу должно быть так
С - байт
A -слово
B -двойное слово
3.3K
26 марта 2007 года
Nethead
88 / / 24.11.2006
Цитата: Lone Wolf
только тут надо учеть что операция mul проводимая над байтами вернет слово(3*120=360. 120 -байт 360 -слово). По этому внимательно нужно следить за входными данными. Что-бы быть увереным, что результат будет байтом. Иначе ,как я вижу должно быть так
С - байт
A -слово
B -двойное слово




какая разница какой ассемблер

622
26 марта 2007 года
nilbog
507 / / 19.12.2006
забыл добавить:
тк в задании ничего не сказано я считал что все поместилось в байт
насчет какая разница какой ассемблер
зависимо под какой процессор вы пишите
приблизим пример
я использовал одноместную mul
а есть mul от трех операндов появившаяся в процессорах 80186 и старше соответственно в 8086 ее не было ))))
так что далеко ходить не нужно
3.3K
26 марта 2007 года
Nethead
88 / / 24.11.2006
Цитата: nilbog
забыл добавить:
тк в задании ничего не сказано я считал что все поместилось в байт
насчет какая разница какой ассемблер
зависимо под какой процессор вы пишите
приблизим пример
я использовал одноместную mul
а есть mul от трех операндов появившаяся в процессорах 80186 и старше соответственно в 8086 ее не было ))))
так что далеко ходить не нужно



нужно наподобии вот этого:
Вычислить Х = 3А + ( В + 5 ) / 2 - С - 1,
где А, В, С, Х- целые знаковые числа занимающие слово, написать программу реализующую данную формулу.
Распишем формулу по отдельным операциям:

 
Код:
АХ ← А ; значение А в регистре АХ
АХ ← 2 *( АХ )         ; 2А в АХ
АХ ← ( АХ ) + А         ; 3А в АХ
ВХ ← В             ; В в ВХ
ВХ ← 5 + ( ВХ )         ; В+5 в ВХ
ВХ ← (ВХ ) / 2         ; ( В+5) / 2 в ВХ
АХ ← (BX ) + ( AX )     ; 3А+( В+5 ) / 2 в АХ
АХ ← ( АХ ) - С         ; 3А+( В+5 ) / 2 - С в АХ
АХ ← ( АХ ) -1         ; 3А+( В+5 )/2 - С - 1 в АХ
Х ← ( АХ )             ; 3А+( В+5 )/2 - С - 1 в Х

Ниже приведена типичная структура простой программы на ассембле-ре.
2.6.1.1 Текст программы:
Код:
data segment
a dw 10
b dw 20
c dw 5
x dw ?
data ends
code segment
assume cs: code, ds: data
start: mov ax, data
mov dx, ax         ; загрузить адрес
mov ax, a         ; сегмента данных
sal ax, 1    
add ax, a
mov bx, b
add bx, 5
sar bx, 1
add ax, bx
sub ax, c
dec ax
mov x, ax         ; запись результата в память
quit:
mov ax, 4c00h     ; код завершения 0
int 21             ; выход в dos
code ends
end start
274
26 марта 2007 года
Lone Wolf
1.3K / / 26.11.2006
а при чем тут "какой ассемблер"? поисчи в инете, как команда mul работает. если операнды байты она возвращает слово, если слова - двойное слово, если же операнды двойные слова - результат 8 байт.
622
26 марта 2007 года
nilbog
507 / / 19.12.2006
Цитата: Lone Wolf
а при чем тут "какой ассемблер"? поисчи в инете, как команда mul работает. если операнды байты она возвращает слово, если слова - двойное слово, если же операнды двойные слова - результат 8 байт.


я что спорю что умножение байтов дает слово )
только если не было переполнения ( OF=0 ) то я просто возьму байт ))

274
26 марта 2007 года
Lone Wolf
1.3K / / 26.11.2006
Я тож с тобой не спорю)) просто, если бы автор использывал твой код ,ему надо бы было это учесть.
хитрая реализация... избавились от процедуры умножения..
3.3K
26 марта 2007 года
Nethead
88 / / 24.11.2006
как же теперь обработать в мс дос
622
26 марта 2007 года
nilbog
507 / / 19.12.2006
имеете ввиду ввод вывод?
3.3K
26 марта 2007 года
Nethead
88 / / 24.11.2006
ну да, компоновка, отладка, ошибки....
13K
26 марта 2007 года
NomadicDMB
85 / / 20.03.2007
Большая просьба пожалуйста пишите коментарии. А проц какой стоит, т.е. Какого семействая я не знаю как определить, может кто подскажет как это сделать?
3.3K
29 марта 2007 года
Nethead
88 / / 24.11.2006
а б и с это двойные слова, нужно с двойными словами
622
29 марта 2007 года
nilbog
507 / / 19.12.2006
охо - ничего себе то были байты а тут двойные слова
с двойными словами муторно нужно пословам арифметику делать..
3.3K
29 марта 2007 года
Nethead
88 / / 24.11.2006
Цитата: nilbog
охо - ничего себе то были байты а тут двойные слова
с двойными словами муторно нужно пословам арифметику делать..



скажи как???

622
29 марта 2007 года
nilbog
507 / / 19.12.2006
возьмем описание
 
Код:
A dd ?
B dd ?

их сложить уже командой add не удасться придется складывать по частям старшие и младшие
 
Код:
wp equ word ptr
add wp a, wp b; сложили младшие разряды и выработали CF флаг
adc wp a+2, wp b+2; --- старшие команда adc a,b делает так a=a+b+CF

в таком ключе - при умножении нарисуйте как умножени "столбиком" и посмотрите как свести к операциям над словам
ps так как я рассматриваю masm 4.0 то не знаю может если есть в старших команды для дв слов - поправьте меня
3.3K
02 апреля 2007 года
Nethead
88 / / 24.11.2006
Помогите расписать формулу X=2B-1+4(A-3C) по отдельным операциям
242
03 апреля 2007 года
Оlga
2.2K / / 04.02.2006
Nethead, [COLOR=red]у меня к вам большая просьба: ПРЕЖДЕ чем создавать тему:[/COLOR]
  • [COLOR=black]прочтите правила раздела Студентам[/COLOR]
  • [COLOR=black]если необходимость в создании темы не отпадет то, тогда создавайте тему ПОСЛЕ ТОГО КАК вы ТОЧНО будете знать, что вам задали.[/COLOR]
[COLOR=red]получаете нарушение -10, на первый раз.[/COLOR]
[COLOR=red]во второй можно попасть в бан.[/COLOR]
3.3K
03 апреля 2007 года
Nethead
88 / / 24.11.2006
Цитата: OlgaKr
Nethead, [COLOR=red]у меня к вам большая просьба: ПРЕЖДЕ чем создавать тему:[/COLOR]
  • [COLOR=black]прочтите правила раздела Студентам[/COLOR]
  • [COLOR=black]если необходимость в создании темы не отпадет то, тогда создавайте тему ПОСЛЕ ТОГО КАК вы ТОЧНО будете знать, что вам задали.[/COLOR]
[COLOR=red]получаете нарушение -10, на первый раз.[/COLOR]
[COLOR=red]во второй можно попасть в бан.[/COLOR]



Это задание по теме, посмотрите на привер выполнения работы....

242
03 апреля 2007 года
Оlga
2.2K / / 04.02.2006
речь идёт о том, что вы изначально не сформулировали нормально вопрос. в результате 2 страницы постов, включающии решение, которое вам не подходит. а название должно отражать суть вопроса+язык программирование(это в названии имеется). например:
(Asm) Арифметическии операции над длинными числами.
Дальнейшии дебаты только через личные сообщения. читайте правила форума.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог