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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Написание программы-текстового редактора  
Написать программу-примитивный текстовый редактор. программа должна вводить информацию с клавиатуры и отображать ее на экране монитора. Ввод данных должен выполняться с использованием функций BIOS. Управление курсором должно выполняться через регистры видеоконтроллера. Программа должна отрабатывать нажатия на клавиши Enter, BackSpace, Delete, а так же ←,↑,→ и ↓. Текст должен быть сохранен в файле при помощи функций DOS.
 
Помогите пожалуйста))

Всего записей: 11 | Зарегистр. 06-05-2008 | Отправлено: 13:41 22-03-2009
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Styks
задача довольно объёмная, никто её делать не будет, так что не теряй время -- или ищи готовый код, или найми кого-нибудь

Всего записей: 24117 | Зарегистр. 06-12-2002 | Отправлено: 14:49 22-03-2009
arhey262

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди добрые!!!! Помогите пожалуйста с задачей!!! Завтра экзамен, а я в этом ни бум-бум почти! Очень срочно!!! Заранее спасибо!  
 
написать программу на языке Ассемблера для решения задачи:  
на входы порта поступают сигналы 0 или 1 от восьми датчиков. Необходимо постоянно опрашивать состояние датчиков. Если число единиц на входе порта больше 5 в порт вывода выводится код FF16. В противном случае в порт вывода выводится код 0016. Произвести трансляцию в объектную программу.

Всего записей: 1 | Зарегистр. 07-04-2009 | Отправлено: 21:34 07-04-2009
akaGM

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

Всего записей: 24117 | Зарегистр. 06-12-2002 | Отправлено: 21:38 07-04-2009
phoenixwow

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задан массив из 20 элементов.Найти и вывести последний из четных элементов массива кратный числу 8
 
буду признателен если поможете с этой задачей!

Всего записей: 1 | Зарегистр. 14-04-2009 | Отправлено: 18:18 14-04-2009
Vostrikovskiy

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, кто-нибудь знает какую-нибудь книженцию по асму x64, выложенную в инете?

Всего записей: 403 | Зарегистр. 19-11-2008 | Отправлено: 14:56 21-04-2009 | Исправлено: Vostrikovskiy, 14:57 21-04-2009
akaGM

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

Всего записей: 24117 | Зарегистр. 06-12-2002 | Отправлено: 13:04 23-04-2009
Vostrikovskiy

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Я не понял, какого первого письма? Где оно находится?
 
 

Всего записей: 403 | Зарегистр. 19-11-2008 | Отправлено: 16:27 23-04-2009 | Исправлено: Vostrikovskiy, 16:28 23-04-2009
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vostrikovskiy
вверху темы часто есть сообщение, которое видно на каждой странице темы.
Это называют "шапкой" темы.
 
в данной шапке есть ссылка на литературу:
 
Ассемблер - книги (ASM, Assembler)

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 09:31 24-04-2009
Vostrikovskiy

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK
Спасибо: переправил свой вопрос туда.

Всего записей: 403 | Зарегистр. 19-11-2008 | Отправлено: 18:22 24-04-2009
leshenka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вывести наименьший нечетный элемент массива кратный числу 7.
 
помогите плиз

Всего записей: 1 | Зарегистр. 26-04-2009 | Отправлено: 23:43 26-04-2009
molko



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
пожалуйста помогите решить простую задачку
Задан массив(вводить не нужно) Нужно проверить повторяется ли максимальный элемент в массиве.Вывести сообщение типа Да или Нет.
вот написал скелетик, все что смог написать (остальное не могу написать хоть убей)
.model tiny
.code
org 100h
start:
 
;....помогите..............
;.....пожалуйста.............
 
Arr dw 1,6,3,4,6 ;заданный массив
n dw 5 ;кол-во элементов
Res_yes db 'Yes'
db 0Dh,0Ah,'$'
Res_no db 'No'
db 0Dh,0Ah,'$'
end start
 

Всего записей: 4 | Зарегистр. 05-05-2009 | Отправлено: 15:20 05-05-2009
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
molko
что именно не получается!!?  
 
я вижу два алгоритма решения.  
1) эффективнее (однопроходный), но чуть-чуть сложнее:
в начали иницилизация:
  Max := Arr[1]
  Cnt := 1  
проходим в цикле от 2 до n, ищем максимальный элемент, каждый раз, найдя элемент больше имеющегося
 
 if Arr[i]> Max then
   Max := Arr[i]
   Cnt  := 1
 else
   if Max = Arr[i] then Cnt := Cnt + 1
 
 после цикла - if Cnt>1 then write('YES')  
   else write('NO')
 
2) алгоритм - проходим один раз, ищем максимальные элемент.
 второй раз проходим, считаем, сколько раз он встретился.
  Дальше - проверка такая же...
 
p.s. я бы выбрал первый алгоритм. он красивее :)

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 17:21 05-05-2009
molko



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не получается почти все. вообще ассемблер туго очень понимаю.  
SERGE_BLIZNUK
на паскале эту задачу и я смогу написать за пару минут, а вот на ассемблер перевести не могу. вот прошу вашей помощи!

Всего записей: 4 | Зарегистр. 05-05-2009 | Отправлено: 17:41 05-05-2009
aridtree



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
;; компилятора нету, проверить не смог)
;; но что то вроде того:
    mov AX,CS
    mov DS,AX    ;;load prog register
    lea DX,arr
    mov BX,MAX
    mov CX,n
    xor SI,SI
next:
    cmp [DX],BX    ;;cpavnivaem s max
    jl NextHel    ;;если меньше то сразу след элемент
    jne neEq    ;;если больший то обраб
    inc SI        
    jmp nextHel
neEq:
    mov BX,[DX]
    xor SI,SI
NextHel:
    
 
;;next helem
    inc DX
    inc DX
    dec CX
    jnz next
    
    mov AX,09h
    text SI,SI
    jnz yyyyes
    lea DX,Res_no    ;; прерывание вывода на экран строки,
;; но не помню точно ли в дх должен быть её адресс
    int 21h
    int 29h        ;;
yyyyes:
    
    lea DX,Res_yes
    int 21h
    int 29h        ;;не помню, вроде это прерывание заканчивает
    MAX dw 0    ;;max Element    
    

Всего записей: 33 | Зарегистр. 04-09-2008 | Отправлено: 20:16 05-05-2009
Prober

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
molko
Давненько я на ДОСовском ассемблере не писал...
Примерно так:

Код:
.model tiny
.code
org 100h
start:
 
mov dx, Arr ; первый элемент массива
mov cx, n ; количество элементов
dec cx ; количество сравнений (на 1 меньше количества элементов)
xor bx, bx ; результат (0 - повторов нет, 1 - есть)
; далее обрабатываем элементы начиная с последнего и до второго
m1:
lea si, Arr
add si, cx
add si, cx
mov ax, [si]
cmp ax, dx
jb m3
ja m2
mov bx, 1
jmp m3
m2:
mov dx, ax
xor bx, bx
m3:
loop m1
; обработка закончена, печатаем результат и завершаемся
lea dx, Res_no
or bx, bx
je m4
lea dx, Res_yes
m4:
mov ah, 09h
int 21h
mov ax, 4C00h
int 21h
 
Arr dw 1,6,3,4,6 ;заданный массив
n dw 5 ;кол-во элементов
Res_yes db 'Yes'
db 0Dh,0Ah,'$'
Res_no db 'No'
db 0Dh,0Ah,'$'
end start

Сравнение использовано беззнаковое (инструкции jb и ja), если надо с учетом знака, то заменяем на jl и jg.

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Prober и  
aridtree большое спасибо!
 
 
Добавлено:
еще маленькая просьба есть.  
Нужно реализовать ввод с клавиатуры и вывод массива состоящего из целых чисел, я сделал тока ввод и вывод одного целого числа. не знаю как сделать цикл, не подскажете как это сделать? да еще вначале необходимо вводить размерность массива а потом уже ввод элементов и их вывод
Код:

Код:
   .MODEL tiny
   .CODE
   org 100h
; ввод с клавиатуры целого числа и вывод его на экран
  _start:
 
; ввод числа в регистр AX  
    call ReadInteger
    mov A,ax
 
; перевод строки
    mov ah,09h
    lea dx,crlf
    int 21h
 
; вывод заголовка
    mov ah,09h
    lea dx,res
    int 21h
 
; вывод числа из AX
     mov ax,A
     call WriteInteger
ret
 
; ввод 10-числа в регистр AX  
ReadInteger proc  
    push    cx      ; сохранение регистров
    push    bx
    push    dx  
    mov     fl,0    ; флаг отрицательного числа
    xor     cx, cx  
    mov     bx, 10  
    call    ReadChar  ; ввод первого символа
 
    cmp     al,'-'   ; если минус - установить флаг
    je      nnn
    jmp     nn
nnn:
    mov     fl,1
   
read:
   
    call    ReadChar   ; ввод очередного символа
nn: cmp     al, 13     ; Enter ?
    je      done       ; да -  > завершение
     
    sub     al, '0'    ; нет -> перевод цифры char -> int
    xor     ah, ah  
    xor     dx, dx    
    xchg    cx, ax  
    mul     bx  
    add     ax, cx  
    xchg    ax, cx  
    jmp     read  
done:  
    xchg    ax, cx  
    cmp     fl,1
    je      eee
    jmp     ee
eee:
    neg     ax
ee:  
    pop     dx
    pop     bx  
    pop     cx  
    ret  
ReadInteger endp  
 
; ввод одного символа    
ReadChar proc  
    mov     ah,1  
    int     21h  
    ret  
ReadChar endp
 
; вывод 10-числа
WriteInteger proc near  
    push    ax  
    push    cx  
    push    bx  
    push    dx  
    xor     cx, cx  
    mov     bx, 10  
; число отрицательное?    
    cmp     ax,0
    jl      ddd    ; если - да
    jmp     divl    ; если - нет
; вывести минус и поменять знак
ddd:
    push    ax
    mov     dl, '-'  
    mov     ah, 2  
    int     21h
    pop     ax
    neg     ax  
 
; получить 10-цифры и поместить их в стек,
; в cx - количество полученных цифр
divl:  
    xor     dx, dx  
    idiv    bx  
    push    dx  
    inc     cx  
    cmp     ax,0      
    jg     divl  
 
; достать из стека, перевести в код ASSII  и вывести  
popl:  
    pop     ax  
    add     al, '0'
   
    call    WriteChar  
    loop    popl  
 
    pop     dx
    pop     bx  
    pop     cx  
    pop     ax  
    ret  
WriteInteger endp  
 
; вывод одного символа  
WriteChar proc  
    push    ax  
    push    dx  
    mov     dl, al  
    mov     ah, 2  
    int     21h  
    pop     dx  
    pop     ax  
    ret  
WriteChar endp  
 
A dw 67
fl dw ?
res db 'res', 0dh,0ah,'$'
crlf db 0dh,0ah,'$'
end _start

Всего записей: 4 | Зарегистр. 05-05-2009 | Отправлено: 14:37 06-05-2009
Ickorka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста....  
Нужно вычислить в цикле следующее выражение z=(x+6)*J/(13-Y) при J=1,2,..7 и записать результат в последовательные адреса памяти

Всего записей: 7 | Зарегистр. 06-05-2009 | Отправлено: 17:11 06-05-2009
bobkalak

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задача: Вычисление обратной матрицы порядка 1000х1000.
 
Саму задачу можно реализовывать на любом языке, но основные алгоритмы должны быть на асм. Вообщем использовать можно асм вставки. Мучаюсь уже давно.

Всего записей: 1 | Зарегистр. 06-05-2009 | Отправлено: 20:04 06-05-2009 | Исправлено: bobkalak, 20:05 06-05-2009
aridtree



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ickorka, если Z помешается в байт, и ответ целочисленный

Цитата:
 
.model tiny
.stack 10h
.code
org 100h
start:
    mov AX,CS
    mov DS,AX
    xor AH,AH
    mov AL,X
    add AL,6
    mov BL,Y
    neg BL
    add BL,13
    div BL
 
    push AX    ;;AX x+6/13-y
    mov BL,1
 
 
  aga:
    xor BH,BH
    imul BL
    mov SI, BX
    mov answer[SI],AX
 
    pop AX
    push AX
    inc BL
    cmp BL,7
    jne aga
 
;;    lea DI,answer ;;ответ здесь.
    mov AX,4c00h
    int 21h
 
 
X db 6
Y db 11
answer dw 7 dup (?)    ;;на самом деле здесь.
end start
 

molko
неясно, что ты хочешь...
но типо того видимо:  

Цитата:
 
xor SI,SI
call ReadInteger  
 
read:
    test AX,AX
    jz doneit
    dec AX
    push AX
 
call ReadInteger  
    mov mas[SI*2],AX
    pop AX
    jmp  read
     
doneit:
 
 


Всего записей: 33 | Зарегистр. 04-09-2008 | Отправлено: 17:47 08-05-2009 | Исправлено: aridtree, 14:35 16-08-2011
Открыть новую тему     Написать ответ в эту тему

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