Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаются все вопросы, связанные с программированием на Ассемблере как общего так и конкретного характера.
 
важное примечание
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
 
короче, тут не сборище придурков-альтруистов, которым нечего делать и они ждут-не дождутся когда вы их попросите
что-то сделать _за_ вас
если позарез надо и вы даже готовы заплатить, тогда вам сюда
удачи
 
некоторые ресурсы
http://www.wasm.ru/ Самый популярный русскоязычный ресурс. https://wasm.in/
Ассемблер - книги (ASM, Assembler)
 
Просьба все большие листинги оформлять тегом more.
 
если вам вдруг не отвечают или ответ вас не устраивает
и вообще полезно прочитать всем спрашивающим

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:42 29-11-2006 | Исправлено: akaGM, 17:44 11-06-2020
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MERCURY127
Думаю тип Currency, жаль нет текущего FreePascal - передрал бы асм.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 18:25 10-04-2013
1234567890qwe



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребят такой вопрос... формат 16-битной инструкции содержит смещение до 1 байта... собственно я задаюсь вопросом в поле MOD (2ой байт КОП) (при 16-битной инструкции) когда установлено значение "01" все ясно "смещение задано байтом" но когда "10" - "смещение 16-битное", как оно туда влазиет то, может там какоето расширение происходит нифига не пойму???
спасибо.
 
если есть ссылки связанные с качественным описанием инструкций команд буду оч. признателен.)

Всего записей: 51 | Зарегистр. 12-07-2012 | Отправлено: 15:09 12-04-2013 | Исправлено: 1234567890qwe, 15:17 12-04-2013
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну так при mod 10 и говорится, что в инструкции присутствует 16-битное смещение...

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 15:31 12-04-2013
1234567890qwe



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в книге Микропроцессоры intel Барри Брэя, говориться что для него отведено только 8бит... стр 157
Смещение 0-1 байт

 
а вот таблица MOD (каким образом 16 бит?):

 
 
 
 

Всего записей: 51 | Зарегистр. 12-07-2012 | Отправлено: 16:52 12-04-2013 | Исправлено: 1234567890qwe, 16:53 12-04-2013
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в твоей таблице ошибка
смещение может быть 0-2 байта

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 17:39 12-04-2013
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1234567890qwe, и что тут такого? ну добавится еще один байт к команде, и выйдет вся команда трехбайтовая... картинка
 
Добавлено:

Цитата:
смещение может быть 0-2 байта

давно уже и 4 и 8 может быть... 16 пока, слава богу, не видел...

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 17:43 12-04-2013
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
для 16-битных _только_ 0,1,2 байта, для 32- и 64-разрядных камней да -- 4 и 8...

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 17:55 12-04-2013
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
для 16-битных _только_ 0,1,2 байт

а где сейчас достать _только_ 16-битный проц?

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 18:00 12-04-2013
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
за сколько возьмёшь?

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 18:02 12-04-2013
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
за 286 возьму...

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 18:08 12-04-2013
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я тебе в нагрузку ещё и 8088 прицеплю...

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 18:35 12-04-2013
1234567890qwe



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM, MERCURY127 понял, спасибо большое всем за ответы!.

Всего записей: 51 | Зарегистр. 12-07-2012 | Отправлено: 00:04 13-04-2013 | Исправлено: 1234567890qwe, 01:10 19-04-2013
1234567890qwe



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите понять разницу между двумя командами, то что делают понятно а вот почему именно это?
ADD CL, TEMP (суммирует байт из сегмента данных по смещению TEMP(т.е. берет значение из TEMP, типо косвенная ссылка получается) с CL)
и
ADD BX, TEMP[DI] (сложение слова расположенного по смещению TEMP+DI(не могу понять как он здесь то узнает что нужно суммировать именно смещение TEMP а не его значение, и DI указано что косвенная ссылка а суммирует именно смещение!......))

Всего записей: 51 | Зарегистр. 12-07-2012 | Отправлено: 01:11 19-04-2013 | Исправлено: 1234567890qwe, 01:12 19-04-2013
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
почему, например, ADD -- это суммирование, а не правило ролевой системы Advanced Dungeons&Dragons?
синтаксис ассемблера, формат команд такой, что здесь объяснять...

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 01:51 19-04-2013
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
или тебя смущают записи
 
int a, b, c[100], i;
a = b;
a = c[i];
a = *(c + i);
 
в Сях тоже?

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 12:56 19-04-2013
1234567890qwe



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ADD -- это суммирование, а не правило ролевой системы Advanced Dungeons&Dragons?  

именно суммирование.

Цитата:
в Сях тоже?

здесь как не пиши понятно что к значению обращается, а когда в роль вступает указатель тот тут же он конкретно указывается "*", а в примере который я привел по идее должно было быть так "какбы" (если с Сями сравнивать):
ADD BX, TEMP[DI] -> ADD BX, *TEMP+*[DI]
 
но он то каким то образом знает без особых указаний что нужно сложить именно смещение хотя в другой такой же команде, с подобным синтаксисом (просто тут смещение задано одним операндом) он уже берет само значение:
ADD CL, TEMP
 
либо может здесь и вправду такой формат, асм. сам подразумевает что "при использовании двух операндов - складывай смещение а не значения"...?
 
 
Добавлено:
и еще можно вопросец, вот к примеру сегмент данных:
      .DATA
 
DATA1 DW DATA2
           DW DATA3
 
здесь DATA1 указывает смещение DATA2, DATA1+2 соответственно на DATA3, то есть DATA1 это смещение  (если я правильно понимаю), а DATA2 и DATA3 тогда что если они не определены в коде, вот в чем существенная разница между DATA1 и DATA2,DATA3 в этом случае?
спасибо...

Всего записей: 51 | Зарегистр. 12-07-2012 | Отправлено: 21:58 19-04-2013 | Исправлено: 1234567890qwe, 21:58 19-04-2013
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1234567890qwe

Цитата:
но он то каким то образом знает без особых указаний что нужно сложить именно смещение хотя в другой такой же команде, с подобным синтаксисом (просто тут смещение задано одним операндом) он уже берет само значение:  
ADD CL, TEMP

Нет тут никакого "само значение". Для ассемблера имя переменной - это её адрес. Команда "ADD CL, TEMP" означает "прибавить к CL значение, лежащее по адресу TEMP". "ADD CL, TEMP[DI]" - "прибавить к CL значение, лежащее по адресу TEMP+DI". Это обычная адресная арифметика.

----------
0 программистов ругал сердитый шеф
Потом уволил одного, и стало их FF

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 22:17 19-04-2013
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
и еще можно вопросец, вот к примеру сегмент данных:
      .DATA
 
DATA1 DW DATA2
           DW DATA3
а можно весь код где определены дата2-3?

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 01:21 20-04-2013
1234567890qwe



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
весь код где определены дата2-3?

это из головы взял... а что метод их определения может как то повлиять на их объявление?
 
вот нашел только здесь вместо DATAх, TEMP(DATA1) и ONE(DATA2), TWO(DATA3), THREE(здесь как метки):

 
или вот еще здесь уже сразу как непосредственные значения, здесь вместо DATA2 и DATA3 рассматриваем непосредственные значения:

Всего записей: 51 | Зарегистр. 12-07-2012 | Отправлено: 01:45 22-04-2013
mynologin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1234567890qwe
Просто у masm такой дурацкий синтаксис. Хотели сделать с претензией на некоторую высокоуровневость, а получилась неконсистентность: иногда имя означает адрес, а иногда значение по адресу. Пользуйтесь fasm, где синтаксис более единообразный: имя (метки/переменной) — это всегда адрес, а имя в квадратных скобках — всегда значение по адресу.

Всего записей: 65 | Зарегистр. 07-05-2011 | Отправлено: 02:58 22-04-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru