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

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

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

Цитата:
в том и дело, я в етом полный ноль.

Цитата:
нужна готовая программа


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


Всего записей: 87 | Зарегистр. 27-08-2007 | Отправлено: 08:14 11-05-2010
bomzzz



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

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

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

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

Цитата:
я бы не был настолько категоричен:

для тех, кого учат ассемблеру, я ещё мягко зарядил...
имхо

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 14:04 11-05-2010
bomzzz



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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 14:10 11-05-2010
akaGM

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

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 14:59 11-05-2010 | Исправлено: akaGM, 21:17 11-05-2010
Rooftop

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

Всего записей: 6 | Зарегистр. 10-05-2010 | Отправлено: 07:07 14-05-2010
aspis

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

Цитата:
ето не курсовая. и помощ нужна совсем не мне, хотел сделать человеку приятно и найти для него нужную ему штуку....  

ИМХО, бред или парадокс ... уже менеджеры ищут код программистам да еще и на асме . Выполняйте лучше свою работу, не лезьте в код и оставьте программистам самим искать что нужно.

Всего записей: 87 | Зарегистр. 27-08-2007 | Отправлено: 08:17 14-05-2010
akaGM

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

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 14:01 14-05-2010
bomzzz



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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 14:03 14-05-2010
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Rooftop, не надо вот только... Где это видано, чтобы менеджеры были заинтересованы в тупых кадрах?
Надо ж так палиться.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 04:09 15-05-2010
SAFERON

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите не могу понять в чём ошибка, а завтро сдавать курсавую.
 
Вот прога на расчёт значения формулы в которой заданы четыре операнда(A B C D; У каждого из них есть: значение и адрес; Значение и адрес  заданы в: decimal bin hex ) и адрес результата:
 
org 100h
In Al,014h
not al
inc al
mov bl,0c1h
add al,bl
mov cl,al
mov al,045h
add al,cl
mov cl,al
mov al,cl
not al  
inc al
mov bl,al
mov al,0f7h
add al,bl
out 05456h,al
 
В последней строке выдаёт ошибку:
 
out 05456h,al - First operand (port) should be 0..255 or DX.
Как это исправить???

Всего записей: 2 | Зарегистр. 19-05-2010 | Отправлено: 15:08 19-05-2010
blaro



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

Цитата:
out 05456h,al - First operand (port) should be 0..255 or DX.
Как это исправить???  

out Port Number,Value
out принимает порт от 0 до 255 а у тебя номер порта больше чем надо.
 
Добавлено:
попробуй переместить в DX номер порта а потом
out DX,al

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

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

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 15:53 19-05-2010 | Исправлено: akaGM, 15:56 19-05-2010
blaro



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

Цитата:
я фигею, зачем при вычислении формулы нужны ftp и udp порты...
кто-нибудь просветит или здесь пахнет вирусятником?

SAFERON хочет захватить мир!

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 16:00 19-05-2010
SAFERON

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо blaro =)
 
akaGM это не вирус это препод загнул на курсач =)

Всего записей: 2 | Зарегистр. 19-05-2010 | Отправлено: 17:22 19-05-2010
promotic

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

Всего записей: 1 | Зарегистр. 21-05-2010 | Отправлено: 18:27 21-05-2010
akaGM

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

Цитата:
действия сложения, вычитания, умножения, деления и инкремент

add, sub, mul/imul, div/idiv, inc
в книге сложно было посмотреть?

Цитата:
repeat ... while

смотри "операторы перехода" -- разные jump'ы и примеры к ним

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 18:57 21-05-2010 | Исправлено: akaGM, 22:01 21-05-2010
Primat081

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте!!!  
Нужно написать программу с несколькими модулями, используя EXTRN. Это вроде разобрал.
Составить процедуру, которая представляет на экране строку символов в виде мат-рицы размерности n*m. Использовать эту процедуру для кодирования и декодирова-ния сообщения путем представления его в виде матрицы заданного вида (размерность подбирается в диалоге) и последующей перемены местами указанных пар столбцов и строк.
Заранее спасибо!

Всего записей: 6 | Зарегистр. 04-12-2009 | Отправлено: 18:56 28-05-2010
KuPbI4

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста, я вот никак не могу найти ошибку в ассемблере:
Условие такое:
Переслать массив из дополнительного сегмента в другую область того же сегмента со следующими изменениями элементов: добавить  5, если элемент неравен 0.
Работает она с вводом и выводом клавиатуры. Но выводит не так как хотелось увидеть:
К примеру: Enter Aarray: 1230 Array: 1111 Dest: 1111
А хотелось бы увидеть Enter Aarray: 1230 Array: 1235 Dest: 1235 и что то подобное
Подскажите пожалуйста где ошибка?!  
Выкладываю код:

Код:
 
;------------------------------// Stack segment //---------------------------------------
 
sta segment para stack 'stack'  ;определяем имя класса (stack) к которому  
                                ;относится сегмент с именем sta
  db 255 dup('stack')          ; минимальный размер
sta ends
 
;-----------------------------// Data segment //----------------------------------------
 
dseg segment
 
Asource db 1,2,3,4           ;012h,01Ch,0Bh,04Fh  
                ;определили массив Asource из 4 констант:
 
Dest db 4 dup(?)             ;размер массива приемника  
 
dseg ends
;------------------------------------------
DStr segment
 
IAMessage db'Enter Asource:$'
 
OAMessage db'Array Asource:$'
 
ODMessage db'Array Dest:$'
 
DStr ends  
;-----------------------------// Code segment //---------------------------------------
cseg segment
   assume CS:cseg,DS:DStr,ES:dseg,SS:sta  ;ассоциация сементных регистров.
 
  Entry proc far   ;главная процедура.
    push DS        ;при запуске exe прграммы регистр DS ук-ет на ее заголовок,считанный           
             ;в память и т.к тело программы оп-ся как прцедура,то первой  
           ;командой идет push DS, которая сохраняет в стеке нач-ое значение DS.
;------------------------Init ES----------------------------
    sub AX, AX       ;обнуляем AX        
    mov AX,dseg    ;инициализация сегмента доп.данных
    mov ES,AX      
;-------------------------Init DS---------------------------
    sub AX,AX      ;обнуляем AX  
    mov AX,DStr    ;инициализация сегмента данных
    mov DS,AX
;----------------------------------------------------
    mov BX, offset Asource    ;массив - источник A  
     
    call AIn
    call AInput
 
    mov DI, offset Asource    ;массив -  источник A  | - определение индексов для массивов.
               
    call AOut
    call AOutput
 
    call Dout
    call AOutput
 
    mov SI, offset Dest      ;массив - приемник  
    mov CX, 4         ;счетчик циклов 4 цикла  
 
   AGAIN:  
      mov AL, ES:[BX+10]     ;явное указание индексаторов на сегмент ES(т.к. по умолчанию DS:[BX])
      cmp AL, 0         ;
      
      jle E         ;если равен 0 ,то переход на метку е
      add AL,5        ;если не равно то прибавляем 5
    E: mov [DI],AL        ;число из акк. в массив-приемник по адресу из di
 
    inc BX ;увеличение адресов текущих элементов в массивах
    inc DI
 
 loop AGAIN         ; конец цикла
        
       call DOutput    
 
   ret                ;выход из процедуры
 Entry endp           ;конец процедуры
 
;///////////////////////////////////////////////////////////////////////////////
AIn proc
     
    mov AH,9h
    mov DX, offset IAMessage
    int 21h
    ret
AIn endp
 
;////////////////////////////////////////------------------------------------------
AOut proc
     
    mov AH,9h
    mov DX, offset OAMessage
    int 21h
    ret
AOut endp
;----------------------------------------
DOut proc
     
    mov AH,9h
    mov DX, offset ODMessage
    int 21h
    ret
DOut endp
;/////////////////////////////////////////////////////////////////////////////////
AInput proc
    sub AL,AL
    mov CX,4
   M:
    mov AH,01h
        int 21h
        mov ES:[BX],AL
        inc BX
   Loop M
    ret
AInput endp    
;///////////////////////////////////////////////////////////////////////////////////
AOutput proc
    mov CX, 4    ;    
    mov BX,0000h ;  
     P:    
    mov AH, 2h       ; Функция вывода ДОС символа на экран
    mov DL, ES:[DI]  ;Записываем в регистр вывода символ из массива Dest
    inc SI           ; Увеличение счетчика элементов массива
    int 21h          ;Вызываем прерывание которому принадлежит функция    
 
   Loop P  
    ret    
AOutput endp
;-----------------------------------------
DOutput proc
    mov CX, 4    ;    
    mov DI,0008h ;  
      S:    
    mov AH, 2h       ; Функция вывода ДОС символа на экран
    mov DL, ES:[DI]  ;Записываем в регистр вывода символ из массива Dest
    inc SI           ; Увеличение счетчика элементов массива
    int 21h          ;Вызываем прерывание которому принадлежит функция    
 
   Loop S  
    ret      
DOutput endp
;-----------------------------------------------------------------------------
cseg ends             ; 
end Entry             ;Exit from procedure
;-------------------------------------------// End //-------------------------
 

Всего записей: 212 | Зарегистр. 13-10-2008 | Отправлено: 22:03 30-05-2010
Abs62



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

Цитата:
      mov AL, ES:[BX+10]     ;явное указание индексаторов на сегмент ES(т.к. по умолчанию DS:[BX])  

Почему [BX+10]? Откуда +10?

Цитата:
      jle E         ;если равен 0 ,то переход на метку е  

je E

Цитата:
   E: mov [DI],AL        ;число из акк. в массив-приемник по адресу из di  

1. Нет явного указания префикса сегмента.
2. Что в DI, если адрес приёмника был занесён в SI?

Цитата:
    mov DI,0008h ;  

Почему число, а не offset?

Цитата:
    mov DL, ES:[DI]  ;Записываем в регистр вывода символ из массива Dest  
    inc SI           ; Увеличение счетчика элементов массива  

Не тот регистр инкрементируется.
 
И не стоит забывать, что 0 и '0' - это не одно и то же.

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

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 23:06 30-05-2010
Открыть новую тему     Написать ответ в эту тему

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