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

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуста решить задачу!
Надо написать програму на асме для ввода и вывода чисел в массив 4х10 (символы надо вводить через пробел в строку!!!!) причём сделать так что бы можно было вводить отрицательные и положительные многозначные числа.

Всего записей: 1 | Зарегистр. 30-05-2009 | Отправлено: 00:43 31-05-2009
Asaqwe

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуйста помогите с задачей (небесплатно).
Ввести двухмерный массив 4х4 трёхзначных чисел. В массиве поменять между собой числа побочной и главной диагоналей. Полученный и начальный массивы вывести на экран. Ввод, вывод, преобразования оформлять в виде процедуры. Числа вводить посимвольно (прерывание 21h). На тасме, 16-б. процессоры.
Предложения о сумме пишите, пожалуйста, в личку.

Всего записей: 1 | Зарегистр. 01-06-2009 | Отправлено: 01:49 01-06-2009
Lenrem

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ помогите пожалуйста сделать простенькое задание к зачёту, затруднение в том что.....я его вообще не знаю)
вот задание  
 
 
3.    Ввести с клавиатуры строку. Посчитать количество слов в строке. Определить, что является разделителем слов. Вывести результаты на экран.  
(если можно с обьяснениями) спс)

Всего записей: 1 | Зарегистр. 02-06-2009 | Отправлено: 17:50 02-06-2009
Nevmind

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток всем! Кто может помочь с задачей (решить):
нужно в организовать страничную память, заполнить часть символами, начиная с FE заканчивая FF. То что окажется между ними, записать в массив неопределенного размера, то есть на каждом шаге размер массива надо увеличивать через GDT. В начале программы нужно зайти в защищенный режим, и выйти из него по окончании. Заранее спасибо.
P.S. В долгу не останусь.

Всего записей: 5 | Зарегистр. 12-12-2007 | Отправлено: 03:32 05-06-2009
alexcoder

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

Всего записей: 2 | Зарегистр. 19-05-2008 | Отправлено: 22:38 05-06-2009
msFast

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасайте, сессия упала как снег на голову, с утра засел за Ассемблер и понял что парой дней его не осилишь, хотя другие языки знаю не плохо. А в понедельник сдавать две задачи. Если не сложно помогите.
 
1.Проверить является ли слово перевертышем. Слово ввести с клавиатуры и вывести ответ.
2.Найти среднеарифметическое одномерного массива. Кол-во эл-в и сами э-ты ввести с клавиатуры.
 
27 экзамен я выучу. А задачи в понедельник край нужны.
Возможен вариант денежной компенсации за Ваше потраченное время.

Всего записей: 1 | Зарегистр. 07-06-2009 | Отправлено: 07:37 07-06-2009
alexcoder

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Постучите в асю 368161244, сделаю сегодня.

Всего записей: 2 | Зарегистр. 19-05-2008 | Отправлено: 10:12 07-06-2009
Ickorka

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

Помогите ещё раз.....нужно вычислить часть и остаток от деления минимального и максимального значений среди чисел Х1, Х2................,Х10. Используя при этом макро-команды, команды ввода-вывода, сдвига...

Всего записей: 7 | Зарегистр. 06-05-2009 | Отправлено: 17:30 07-06-2009 | Исправлено: Ickorka, 17:30 07-06-2009
RNDDSTU

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!!
завтра будет проходить допуск к экзамену,нужно сдать задачи!!!
Помогите пожалуйста решить 2 задачки на ассемблере:
1.Разработать подпрограмму, которая преобразует заданное десятич-ное число в двоичную систему. Разработать программу, которая вводит с клавиатуры строку десятичных цифр и выводит на экран её эквивалент в двоичной системе. Если строка не является числом, то сообщает об этом.
 
2.Очистить экран. Вывести несколько строк произвольного текста (ат-рибут 14). Перехватив прерывание печати экрана Print Screen (Int 5h), ме-нять атрибуты всех строк экрана циклически от 1 до 15. Каждое нажатие клавиши Print Screen вызывает изменение атрибута.
 

Всего записей: 1 | Зарегистр. 08-06-2009 | Отправлено: 11:39 08-06-2009
kissenish

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет, помогите решить задачу. Решение линейниго диофантового уравнения:
X1+X2+X3+X4+...+Xn=n, n в[q][/q]
водится с клавиатуры. Результат вычислений – на экран.

Всего записей: 1 | Зарегистр. 11-06-2009 | Отправлено: 06:27 11-06-2009
ipsony144



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте, не могу понять как исправить ошибку  
intcmd_launch equ [bx-8]
intcmd_getcom equ [bx-6]
intcmd_off dw 0 ;Pointer to offset in COM file
intcmd_size dw offset intcmd_end - offset intcmd_start
intcmd_next dw 0 ;Ptr to next routine to append
intcmd_lnks dw 4
intcmd_start = $
dw offset launch_next ;Call to load and run program.
dw offset getcom_next ;Call to find shell name.
 
intcommand proc near
assume cs:code,ds:code,es:code,ss:code
push bx
call intcmd_1
intcmd_1:
pop bx ;Get pointer to sub calls.
mov di,si ;Copy ptr to command
dec di ;Back up to cmd line size.
mov al,process_rc ;Get and save return code
push ds
push ax
call intcmd_getcom ;Get comspec string.
call cs:intcmd_launch ;Run program.
pop ax
pop ds
mov process_rc,al ;Restore return code
pop bx
ret
intcommand endp
intcmd_end = $
 
ошибка "instruction operand must have size" в строчке call intcmd_getcom
используется masm32

Всего записей: 6 | Зарегистр. 14-05-2009 | Отправлено: 18:15 11-06-2009
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ipsony144
какая модель и приложение?
для flat и 32 вообще говоря должно быть вот так:
intcmd_getcom equ dword ptr [ebx-6]
...
call intcmd_getcom

Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 19:09 11-06-2009
Skyey1991

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ помогите пржалуйста с программой... Никак не могу сделать ее((
В общем вот условие задачи:
Есть массив. Сформировать из исходного массива новый, из элементов, больших заданного числа А

Всего записей: 1 | Зарегистр. 16-06-2009 | Отправлено: 16:27 16-06-2009
MissAlice

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
здравствуйте, очень нужна ваша помощь
есть программа на паскале, сделанная через встроенный ассемблеровский модуль, надо переделать ее так, чтоб программа, написанная на ассемблере, вызывалась из паскаля
вот задание дословно:
В Pascal-программе использовать директиву компилятора { $L  <имя .obj-файла> }, где .obj-файл - это оттранслированная программа на языке ассемблера, которая вызывается из Pascal-программы.  
 
текст программы, написанной через встроенный ассемблеровский модуль(программа переводит строчные буквы в заглавные):
 
program lab4;
uses crt;
var stroka:string;
    max:integer;
    right,left:byte;
    flag1,flag2:boolean;
 
 
label cycle,next2;
begin
clrscr;
writeln('введите строку символов:');
readln(stroka);
flag1:=true;
flag2:=true;
repeat
writeln;
if not flag2 then writeln('ошибка ввода не цифровой информации');
if not flag1 then writeln('ошибка.Количество обрабатываемых символов не может превышать длину строки и быть меньше нуля');
flag1:=true;
flag2:=true;
writeln('введите количество обрабатываемых символов:');
{$I-}readln(max);
if (ioresult<>0) then flag2:=false;
if ((max>length(stroka)) or (max<0)) then flag1:=false;
until ((flag1) and (flag2));
asm
      mov cx, max;
      inc cx
      lea di,stroka
      lea si,stroka
      mov right,7Ah ;
      mov left,61h;
 
      cycle:
      lodsb
      cmp al, right;
     ja next2 ;
 
     cmp al, left
     jl next2;
     mov di,si;
     dec di ;
 
     sub al,20h ;
     stosb
 
     next2:   ;
     loop cycle    ;
 
end;
writeln;
writeln('выходная строка:');
writeln(stroka);
readkey;
end.

Всего записей: 1 | Зарегистр. 16-06-2009 | Отправлено: 21:08 16-06-2009
Molniev

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как ответ на твой вопрос могу посоветовать книгу Юрова Assembler: Учебник для вузов. Или в самой книге или в практикуме к ней (я точно не помню) есть глава с описанием подключения асемблерного модуля.

Всего записей: 176 | Зарегистр. 13-03-2008 | Отправлено: 15:44 19-08-2009
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Molniev, а я Вам могу порекомендовать иногда смотреть на дату сообщения.
очень-очень сильно сомневаюсь, что MissAlice два с половиной месяца терпеливо ждёт Ваш ответ... ;)

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 21:54 19-08-2009 | Исправлено: SERGE_BLIZNUK, 21:55 19-08-2009
dextermd



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Помогите решить задачу на ассемблере: "Напишите программу которая меняет текущий диск на диск A: и потом после небольшой паузы возвращается на ранее активный диск". Как сделать эту паузу ? Вот что я сделал:
 
MODEL SMALL
STACK 100h
 
CODESEG
Start:
mov ax,@data
mov ds,ax
 
mov ah,19h ;запрашиваем текущий активный диск
int 21h
 
mov bl,al ;запоминаем текущий активный диск
 
mov ah,0eh ;делаем активным
mov dl,0 ;диск А
int 21h
 
;здесь должна быть пауза
 
mov ah,0eh ;делаем активным
mov dl,bl ;предыдущий активный диск
int 21h
 
mov ah,04Ch ;Выход
int 21h
 
End Start

Всего записей: 32 | Зарегистр. 12-02-2005 | Отправлено: 20:50 04-09-2009
akaGM

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

Цитата:
после небольшой паузы

если не нужна точность до миллисекунд или до определённого кол-ва тиков, то можно
по-простому использовать NOP'ы, холостой цикл или джампы вперёд:
 

Код:
mov cx, 0ffh ; cx=типа счётчик, подбираемый...
delayloop:
loop delayloop

 

Код:
nop
nop
nop
nop
сколько наберёшь...

 

Код:
jmp short $+2
jmp short $+2
jmp short $+2
jmp short $+2
сколько наберёшь...

Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 21:24 04-09-2009 | Исправлено: akaGM, 14:41 05-09-2009
Prober

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dextermd
1. В ДОСе есть функция 2Ch, возвращает текущее время. Вызвать ее перед задержкой, к полученному времени добавить желаемую длительность задержки и вызывать функцию в цикле, сравнивая текущее время с требуемым.
2. В ДОСе по адресу 40:6C лежит 4-байтовый счетчик тиков таймера, инкрементируется ~18 раз/сек. Опросить перед задержкой, посчитать, сколько в нем должно стать после задержки, и опрашивать, пока не станет.

Всего записей: 681 | Зарегистр. 01-11-2006 | Отправлено: 05:41 05-09-2009
akaGM

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

Цитата:
2. В ДОСе по адресу 40:6C

не в досе, а в биосе, точнее в rom-bios data area...
 
dextermd
а вообще, корректнее будет не

Цитата:
после небольшой паузы
, а по нажатию эникея с подсказкой на экране,
если это не просто учебное задание...

Всего записей: 24120 | Зарегистр. 06-12-2002 | Отправлено: 14:33 05-09-2009 | Исправлено: akaGM, 14:38 05-09-2009
Открыть новую тему     Написать ответ в эту тему

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