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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
MERCURY127



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

Цитата:
Самому какое-то время спустя тоже может быть непросто

во во я сам то теперь не понимаю собст код пяти-семилетней давности... сижу и думаю - ба, неужто это я писал? старею, видимо - 30 лет стукнуло...

Всего записей: 11539 | Зарегистр. 03-08-2008 | Отправлено: 19:48 16-05-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вы посмотрите на код Восемнадцатилетней давности. Про себя - ярый противник ассемблера - на ассемблере не должны писать люди. Бывают инопланетяне - им можно, но даже им вредно. Однако при нынешнем брожении в мозгах ИТ специалистов, когда нельзя оптимизировать 2 условия логических примерно для 80 миллионов пользователей, тогда прогноз - ассемблер жить пока будет.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 22:51 16-05-2012
priorovod



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Спасибо! повлияло то что label убрал и оставил @@lb1 и т.д.

Всего записей: 2 | Зарегистр. 23-10-2009 | Отправлено: 23:35 16-05-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
priorovod
пожалуйста...
только это называется не ассемблерная вставка, а спец.функция на BASM'e
 
MERCURY127

Цитата:
старею, видимо - 30 лет стукнуло...
а чё серпом размахиваешь? :)

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 02:29 17-05-2012
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Привет всем.  
У меня такой вопрос почему отладчик пропускает прерывание int 21h? Приведу пример

Код:
 
.model small
.stack 1024
.data
mystr db 100 dup(?)
 
.code
start:
  mov ax,@data
  mov ds,ax
  mov ah,0ah
  lea dx,mystr
  int 21h
 
  mov ah,9
  lea dx,mystr
  int 21h
  mov ah,4ch
  mov al,0
  int 21h
end start

Здесь отладчик просто проходит int 21h и не прерывает программу.

----------
Оптимистично смотрю на мир глазами убийцы.

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 13:25 18-05-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blaro
я плохо это помню, но вроде первым в буфере должен стоять байт длины
а после ввода ещё один байт добавляется, т.е.
перед выводом на экран надо как-то так делать
lea dx, mystr+2
глянь, может в этом дело...
 
да и по 21/09 про завершающий $ не забывай...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 13:36 18-05-2012 | Исправлено: akaGM, 14:26 18-05-2012
blaro



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

Цитата:
я плохо это помню, но вроде первым в буфере должен стоять байт длины
глянь, может в этом дело...
 

Хм... добавил следующие строки

Код:
 
LEA  DX,STRING     ;DS:DX указывают на адрес строки
MOV  BX,DX         ;пусть BX тоже указывает на строку
MOV  AL,51         ;установка длины строки (+1 для CR)
MOV  [BX],AL       ;посылаем в 1-й байт дескриптора
MOV  AH,0AH        ;номер функции
INT  21H           ;получаем строку
 

и все стало работать. Хотя без этого в классе на работало на ура

----------
Оптимистично смотрю на мир глазами убийцы.

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 14:32 18-05-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
blaro
значит так...
 
21/0аh
вход
ds:dx=адрес буфера, первый байт=размер буфера
выход
ds:dx=адрес буфера, первый байт=размер буфера, второй=количество реально введённых байт

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 15:16 18-05-2012
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Значит строку надо объявлять так?
mystring db 100,100 dup(?)

----------
Оптимистично смотрю на мир глазами убийцы.

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 15:51 18-05-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я бы вообще вот так:
mystring db 100,100, 98 dup('$')

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 15:57 18-05-2012 | Исправлено: akaGM, 15:57 18-05-2012
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет. Так: buf db 82, ?, 80 dup (?), а можно и еще красивее, но с телефона лень писать

Всего записей: 11539 | Зарегистр. 03-08-2008 | Отправлено: 15:58 18-05-2012 | Исправлено: MERCURY127, 15:59 18-05-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
если ноль оставить или ? что одно и тоже, то программа еще UPX-ом будет сжиматься

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:01 18-05-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
при dup('$') при однократном прогоне не нужно будет высчитывать и вписывать $ для 21/09
типа оптимизация...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 16:05 18-05-2012
wedl



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

Подскажите пожалуйста как лучше реализовать приведенный мной ниже алгоритм шифрования:
bres = (bsrc ROL (i mod M)), где bsrc – i-ый байт кодируемого файла, bres – i-ый байт в результирующем файле, полученный в результате кодирования, M – параметр алгоритма, целое число,
задаётся пользователем и лежит в пределах 0...9, i – номер позиции кодируемого
байта в кодируемом файле, отсчитанный от начала файла, ROL – операция
циклического сдвига влево, mod – операция взятия остатка от деления.

Всего записей: 11 | Зарегистр. 26-08-2008 | Отправлено: 16:12 18-05-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а в чём проблема?
как написано, так последовательно и реализуй...
все операции примитивные и существуют в ассемблере...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 16:27 18-05-2012
bomzzz



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

Цитата:
типа оптимизация...

а понил. обычно при записи в строку указатель сразу на конец показывает, разве задом наперед если ее заполнять

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:31 18-05-2012
wedl



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
проблема в том что до этого я делал шифрование/дешифрование методом перестановки бай и вышло как то не очень.  
 
http://dl.dropbox.com/u/56949969/tail.asm вот исходник

Всего записей: 11 | Зарегистр. 26-08-2008 | Отправлено: 16:46 18-05-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wedl
если ты это сам писал, то у тебя не будет никаких проблем в исполнении другого алгоритма, или эти проблемы я просто не понял...

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 17:11 18-05-2012
wedl



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM, в том то и дело что алгоритм я брал не свой, моих знаний пока увы ещё не хватает что бы перелопатить сей алгоритм(

Всего записей: 11 | Зарегистр. 26-08-2008 | Отправлено: 17:23 18-05-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wedl
 
ну ты же можешь закодить формулу :)
 
bres = (bsrc ROL (i mod M))

Всего записей: 24053 | Зарегистр. 06-12-2002 | Отправлено: 17:42 18-05-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 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