ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Оффтоп > Болталка
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Зачет по ассемблеру.
  #1  
Старый 24.12.2009, 18:25
Baofy
Участник форума
Регистрация: 26.02.2009
Сообщений: 227
Провел на форуме:
1564765

Репутация: 208
По умолчанию Зачет по ассемблеру.

Помогите с зачетом, сам я в ассемблере не понимаю надо написать 2 программы в паскале с встраиваемыми модулями ассемблера. Задачи:

1) Найти сумму натуральных чисел меньшик K.

2) Найти частное между 2 числами введенными с клавиатуры. Эту я сделал но она не работает вот листинг:

var a,b:integer;
chas:integer;
begin
writeln('Vvedite a ');
readln(a);
writeln ('Vvedite b');
readln(b);
asm
mov ax,a
mov bx,b
div ax,b
mov chas,ax

end;
writeln('Chasnoe', chas);
end.
 
Ответить с цитированием

  #2  
Старый 24.12.2009, 18:26
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме:
2603363

Репутация: 278
Отправить сообщение для Deathdreams с помощью ICQ
По умолчанию

Цитата:
a,b:integer;
chas:integer;
Почему не real?
 
Ответить с цитированием

  #3  
Старый 24.12.2009, 18:28
Baofy
Участник форума
Регистрация: 26.02.2009
Сообщений: 227
Провел на форуме:
1564765

Репутация: 208
По умолчанию

Deathdreams да у нас это особого значения не имеет можно и целые и с точкой главно чтобы работала.
 
Ответить с цитированием

  #4  
Старый 24.12.2009, 18:51
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

asm
mov ax, [a]
div ax, [b]
move [chas], ax

Не? Просто нету возможности проверить вот и тыкаюсь
__________________
..

Последний раз редактировалось .Slip; 24.12.2009 в 19:28..
 
Ответить с цитированием

  #5  
Старый 24.12.2009, 20:43
Baofy
Участник форума
Регистрация: 26.02.2009
Сообщений: 227
Провел на форуме:
1564765

Репутация: 208
По умолчанию

.Slip пишет Error 155: Invalid combination of opcode and operands выдает на строчке div ax, [b]
 
Ответить с цитированием

  #6  
Старый 24.12.2009, 20:47
.Slip
Leaders of Antichat - Level 4
Регистрация: 16.01.2006
Сообщений: 1,966
Провел на форуме:
21768337

Репутация: 3486


По умолчанию

Дай какой нибудь рабочий кусок паскаль+асм для примера, мне никак сейчас не проверить, поэтому методом тыка.
__________________
..
 
Ответить с цитированием

  #7  
Старый 24.12.2009, 20:53
Baofy
Участник форума
Регистрация: 26.02.2009
Сообщений: 227
Провел на форуме:
1564765

Репутация: 208
По умолчанию

.Slip да у меня у самого нету, решить надо. если убрать b то программа работает но всегда в частное выдаеться один т.е например делишь 6 на 3 будет 1 и так всегда а с b отказываеться работать хз почему(
asm
mov ax, a
div ax, b
mov [chas], ax
 
Ответить с цитированием

  #8  
Старый 24.12.2009, 21:02
Retimiled
Banned
Регистрация: 24.12.2009
Сообщений: 141
Провел на форуме:
487460

Репутация: 45
По умолчанию

1.я как то так 8)
mov cx, [K]
dec cx
xor ax,ax
A: add cx
loop A:
mov [rez],ax

P.S. .... нужно просто определиться как ПАСКАЛЯ-АССЕМБЛЯ берет переменные и записывает их... затем вспомнить что DIV получает не только целое но и остаток от деления и где они лежат зависят от ТОЛЩИНЫ переменных!

и главное у DIV один операнд .... при ширине WORD целое записывается в AL(нижний байт AX) а остаток в AH(верхний байт AX) ...

Цитата:
Сообщение от Baofy  
.Slip да у меня у самого нету, решить надо. если убрать b то программа работает но всегда в частное выдаеться один т.е например делишь 6 на 3 будет 1 и так всегда а с b отказываеться работать хз почему(
asm
mov ax, a
div ax, b
mov [chas], ax
... это говорит о том что при делении адреса 'a' ....который никак не поместится в AX разделить на адрес 'b' который урежется до WORD .... действительно будет получаться всегда 1

Последний раз редактировалось Retimiled; 24.12.2009 в 21:31..
 
Ответить с цитированием

  #9  
Старый 24.12.2009, 21:18
Baofy
Участник форума
Регистрация: 26.02.2009
Сообщений: 227
Провел на форуме:
1564765

Репутация: 208
По умолчанию

Retimiled ок спасибо только пока не могу проверить.
 
Ответить с цитированием

  #10  
Старый 24.12.2009, 23:36
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

ппц. народ. div ax, b полюбому выдаст ошибку.

1) div принимает тока 1 параметр.
2) если делитель размером в слово, то делимое должно быть расположено в паре регистров dx:ax, причем младшая часть делимого находится в ax. После операции частное помещается в ax, а остаток — в dx;

по этому будет чтото типа такого
Код:
mov ax,a
mov bx,b
xor dx,dx ; dx = 0
div bx
mov chas, ax

Последний раз редактировалось slesh; 24.12.2009 в 23:38..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зачет по инфе. 1 курс, нах! Godfather Bulan Болталка 35 23.12.2009 02:11
Подборка e-books по ассемблеру tclover Болталка 7 09.07.2006 14:15



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ