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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Где взять файлы *.lib для папки /LIB ???
Windows XP, P4
 
Я, только начинаю изучать Assembler.
Скачал бесплатно MASM32 v.9 из Internet.
После установки –  папка /LIB оказалась пустой.
Написал программу с двумя функциями: MessageBox, ExitProcess.
Создается только файл *.obj

Всего записей: 2 | Зарегистр. 28-03-2007 | Отправлено: 15:43 30-03-2007
akaGM

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

Цитата:
Где взять файлы *.lib для папки /LIB ???

ну, наверное, масм без библиотек распространяется...
на первом этапе они и не нужны, кстати, там сам волен использовать любые
библиотеки, в которых есть необходимость...
а что тебе надо?
 

Цитата:
Создается только файл *.obj  

масм -- это компилятор, он создаёт объектники, исполнимые файлы делает линкер...
тебе подойдёт любой микрософтный, наверняка он лежит в /bin

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 16:16 30-03-2007
HRyk



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Друзья, помогите разобраться.  
1) почему при запуске программы не виден курсор???
a   segment
    org 100h
    assume cs:a,ds:a
begin:  mov ax,0001h
    int 33h
 
     mov ax,0003h
     int 33h
 ct:    mov ah,01h
    int 21h
    cmp al,'a'
    je  fin
    jmp ct
    
fin:    int 20h
a       ends
    end begin     
 
 
2) если у кого есть время, доработайте мою програмку, плз!  
задача такая: при работе программы в не зависимости от нажатия на клавиши мыши, выводить hello, при нажатии на одну из клавиш мыши, если курсор вне окна,выводить 'ura' , если в окне, осуществлять выход из программы:
 
s    segment
    org 100h
    assume cs:s,ds:s
begin:
    mov    ah,06h     ;задание окна1
    mov    bh,31h
    mov    ch,5
    mov    cl,5
    mov    dh,10
    mov    dl,10
    int    10h
        
        
    mov     ax,0001h        ;видимость курсора
    int     33h
 
next:
    mov ax,0003h
    int 33h
    and bx,3h    
    cmp bx,1
    je  key1            ;бит0=1 -нажата левая клавиша
    cmp bx,2        ;бит1=1 - нажата правая клавиша
    je  key2            
    jmp next
 
key1:    mov ah,09h        ;вывод Hello
    lea dx,s1
    int 21h
we:    mov    ax,0003h    ;для синхронизации
    int    33h
    and    bx,1
    cmp    bx,1
    je    we        ;для синхронизации
    jmp next
 
    
key2:    
 
            mov    ax,0003h     ;определить положение курсора    
            int    33h          ;cx- x  dx- y bx- состояние клавиш
 
                and    bx,2h
            cmp    bx,2
            jne    wne
    
        pro1:    cmp    cx,40         ;бит0=1-нажата левая б1=1-правая    
            jle    wne
            cmp    cx,80
            jge    wne
            cmp    dx,40
            jle    wne
            cmp    dx,80
            jge    wne
                
            jmp    wix
            
            
        wne:    mov    ah,09h    
            lea    dx,s2
            int    21h        
                
we1:
    mov    ax,0003h    ;для синхронизации
    int    33h
    and    bx,2
    cmp    bx,2
    je    we1        ;для синхронизации
    jmp next
 
        wix:    mov    ax,0002h      ;отключить курсор
            int    33h
            
            int    20h
 
int 20h
s1    db    'hello','$'
s2    db     'leto','$'
s    ends
    end begin

Всего записей: 162 | Зарегистр. 04-11-2006 | Отправлено: 20:31 30-03-2007 | Исправлено: HRyk, 20:51 30-03-2007
akaGM

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

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 20:48 30-03-2007 | Исправлено: akaGM, 20:48 30-03-2007
HRyk



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM, по поводу первой задачи: при запуске у меня комп, будто зависает!!! не реагирует ни на что!!! хотя в коде ошибок я вроде не вижу. Это не может быть причиной "некоректной работы" Windows???  

Всего записей: 162 | Зарегистр. 04-11-2006 | Отправлено: 20:55 30-03-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HRyk
ты сделал exe или com?
твой код написан под ком-формат...
 
для ехе надо убрать org 100h и заменить int 20h на mov ax, 004ch; int 21h
 
и вообще убери из кода
Код:
 
    mov ax,0001h
    int 33h
 
    mov ax,0003h
    int 33h  
 

на фиг там оно?

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 21:18 30-03-2007 | Исправлено: akaGM, 21:19 30-03-2007
HRyk



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

Всего записей: 162 | Зарегистр. 04-11-2006 | Отправлено: 23:23 30-03-2007
Lyrik

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

Цитата:
mov ax, 004ch; int 21h

надо mov ax, 4c00h; int 21h. я не спорю ah=00h, тоже прерывает программу, но в ней CS=segment to PSP, что, как понимаете, не всегда удовлетворяет.

Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 23:47 30-03-2007
akaGM

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

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 14:11 31-03-2007
Novopolotsk

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте помогите плиз решить задачку:
 
 1. Написать программу на ассемблере,выполняющую арифмитические операции над целочисленными данными согласно заданиям,приведённым ниже. Общие требования:
 
--вид буфера для хранения массива и адресация в нем выбирается самостоятельно;
--числовые данные вводятся с клавы в виду строк символов(по умолчанию используется 10с/с),при этом производится проверка на переполнение(по умолчанию на знаковые 16 битные данные);
--константы задавать с помощью директивы EQU:;
--вычисления проверять на возникновение ошибок и переполнений;
--старт программы,ввод-вывод данных и обработку ошибок оформлять выводом в консоли поясняющих строк.
2. Реализовать основной алгоритм обработки как процедуру на языке ассемблера ,ввод-вывод данных и вызов процедуры реализовать в системе программирования Turbo C как головную программу.
ЗАДАНИЕ:
сформировать матрицу целых чисел (размер матрицы 5х6 элементов) и найти суммы элементов строк
 
Заранее спасибо

Всего записей: 4 | Зарегистр. 10-03-2007 | Отправлено: 14:50 07-04-2007
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые, вот какой вопрос: на работе нужно шифровать файлы (простенько). Самое простое - XOR.
Сделал я программку на VB. Все хорошо, но работает медленно (естественно, ведь на то он и VB).
Но это все лирика. Надо мне внедрить в программу функцию на ассемблере. Я такую нашел, но она  
русские символы портит. Поскольку я в нем ничего не понимаю, прошу - найдите пару минут, поправьте.
Собственно, нужен откомпилированный bin-файл.
Лежит здесь - http://www.filespace.org/Rush/xor.zip

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 17:22 07-04-2007
akaGM

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

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 18:23 07-04-2007
Novopolotsk

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

Всего записей: 4 | Зарегистр. 10-03-2007 | Отправлено: 19:59 07-04-2007
akaGM

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

Цитата:
Скажите плиз хотя бы как сделать ввод чисел в двумерный массив

а на фиг тебе это на ассемблере?
 

Код:
 
N equ 3
M equ 4
 
array db N*M dup (0)
 

 
вот тебе двухмерный массив, за размещением по строкам/столбцам N/M придётся следить самому...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 20:34 07-04-2007
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM

Цитата:
что значит "портит"?  
dos -- win1251 кодировка что ли?  

Нет. Часть русских символов отображается вполне нормально.  

Цитата:
тогда вряд ли что можно сделать... или-или...

И почему вряд ли что-то тогда можно сделать? Я, например, на том же бейсике сделал все без проблем. Любой двоичный файл зашифровывается/расшифровывается без ошибок. Только вот время...
 
Добавлено:
akaGM
Сперва послал мессагу, потом только твою прочитал...

Цитата:
без разницы какая кодировка, всё должно корректно xorиться и восстанавливаться...  

Правильно, конечно. Но если при этом оставаться в двоичных пределах...

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 20:50 07-04-2007
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Rush
 
причём тут двоичные пределы?
какая разница в каком представлении число...
10 xor 120 = 114
114 xor 120 = 10
 

Цитата:
Я, например, на том же бейсике сделал все без проблем

ну так ошибка в твоей асм-программе...

Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 21:07 07-04-2007 | Исправлено: akaGM, 21:08 07-04-2007
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM

Цитата:
причём тут двоичные пределы?  

Так ведь за 255 выйдешь, назад в то же место не вернешься. А если прописать дополнительные условия, то это очень даже возможно.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 21:25 07-04-2007
Lyrik

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

Цитата:
Так ведь за 255 выйдешь

Если xor'ишь байты? Или что? Что-то ниче не пойму %)
Операция xor - побитовая, т.е. i-тый разряд результирующего числа зависит от i-тых разрядов исходных чисел, но не зависит не от i+1, не от i-1.
А то, что у тя работает медленно на барсике, то это не повод переписывать на асм довольну простое кодирование. Просто попытайся усовершенствовать свой алгоритм на  барсике, т.е. например увеличь буфер, который ты xor'ишь и т.д.

Всего записей: 388 | Зарегистр. 04-04-2006 | Отправлено: 22:13 07-04-2007
Novopolotsk

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

Цитата:
а на фиг тебе это на ассемблере?  

Лаба такая...
 
А как сделать ,чтобы с клавы можно было вводить значения???
Только по заданию сказано,что надо ввести массив как строку.  
В прочем задание ниже написанно:

Цитата:
Здраствуйте помогите плиз решить задачку:  
 
 1. Написать программу на ассемблере,выполняющую арифмитические операции над целочисленными данными согласно заданиям,приведённым ниже. Общие требования:  
 
--вид буфера для хранения массива и адресация в нем выбирается самостоятельно;  
--числовые данные вводятся с клавы в виду строк символов(по умолчанию используется 10с/с),при этом производится проверка на переполнение(по умолчанию на знаковые 16 битные данные);  
--константы задавать с помощью директивы EQU:;  
--вычисления проверять на возникновение ошибок и переполнений;  
--старт программы,ввод-вывод данных и обработку ошибок оформлять выводом в консоли поясняющих строк.  
2. Реализовать основной алгоритм обработки как процедуру на языке ассемблера ,ввод-вывод данных и вызов процедуры реализовать в системе программирования Turbo C как головную программу.  
ЗАДАНИЕ:  
сформировать матрицу целых чисел (размер матрицы 5х6 элементов) и найти суммы элементов строк  
 
Заранее спасибо  

 

Всего записей: 4 | Зарегистр. 10-03-2007 | Отправлено: 02:50 08-04-2007 | Исправлено: Novopolotsk, 02:59 08-04-2007
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lyrik

Цитата:
А то, что у тя работает медленно на барсике, то это не повод переписывать на асм довольну простое кодирование. Просто попытайся усовершенствовать свой алгоритм на  барсике, т.е. например увеличь буфер, который ты xor'ишь и т.д.  

Ну почему же. Как не пытыйся усовершенствовать за ассемблером не угонишься. Если на бесике 10 мб файл обрабатывается у меня за 16 секунд, то здесь за 1 секунду.
И вряд ли тут что-то изменишь...

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 03:48 08-04-2007
Открыть новую тему     Написать ответ в эту тему

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