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

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот то что у меня получилось. знаковые числа я начала суммировать с 21 ячейки а не как в задании сказано
 
mov R0,#21h
mov R2,#00000000b
Summ:
 mov A,R2
 mov R3,#11111111b
 anl A,R3
 jnz div1
 jb R1.7,summ1
 div1:
  jb A.7,summ1
 summ1:
  jb R0.7,summ11
  add A,R0
  jnc summ12
  запись во второй байт, т.к переполнение
  summ12:
   add R1,A
  summ 11:
   add A,Ro
   jnc summ21
   запись во второй байт, т.к переполнение
   summ 21:
    add R1,A
 jb R0.7, summ22
 add A,R0
 jnc summ3
 add R1,A
 summ3:
  запись во второй байт т.к переполнение
 summ22:
  add A,R0
  jnc summ4
  запись во второй байт
 summ4:
  add R1,A
cjne R0,#31h,Summ
jmp _end
 
мне кажется что можно проще сделать  
r2 - второй байт суммы
r3 - для проверки что во втором бате ничего нет

Всего записей: 63 | Зарегистр. 22-04-2012 | Отправлено: 11:39 18-10-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
синтаксис немного не такой к какому я привык. ну я тебе тоже советую скачать
http://ziplib.com/emu8086/
программа наглядно показывает как работает компьютер, содержит кучу простейших примеров.  а когда один увидишь наглядно как заполняется стек, как процессор переходит к следующему коду, как заполняются регистры, как запись память приводит к выводу символа на экран и вызываются прерывания сразу сильно в галаве просветляется
 
http://rghost.ru/41006235  - вот тут не самая последняя версия, но почему то последующие версии сильно в размере начали уменьшатся - вдруг там функционал обрезан у триальных. этой я пользуюсь уже много лет. к тому же добавил найденный в инете переведенный на русский мануал к программе.
 
кроме всего этого это шикарный редактор 16 битных кодов, не только с подсветкой но и с наглядной отладкой. синтаксис TASM-а и FASM-а, для MASM-а немного надо переделывать код. а твой я даже не знаю че за асм
 
Добавлено:
он еще с виртуальной дискеты умеет грузится, можно писать свой пбр тут же отлаживать и дальше ось

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 14:19 18-10-2012
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bomzzz
ну вот зачем АРМщику советовать х86 ассемблер??? что он ему даст такого, что потом не придется забыть и поскорее?

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 19:32 18-10-2012
bomzzz



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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 21:11 18-10-2012
Abs62



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

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

Охотно верю. Потому как главной деталью любого компьютера является голова его оператора.  

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

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 21:53 18-10-2012
bomzzz



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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 02:49 19-10-2012
ItsJustMe

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

Цитата:
синтаксис немного не такой к какому я привык.


Цитата:
ну вот зачем АРМщику советовать х86 ассемблер???  

Сдается мне, это не ARM. Но синтакс действительно странный. ПодARM косящий, но для x86 16-bit real mode... Видимо, этот asm хочет казаться круче, чем он есть...

Всего записей: 2028 | Зарегистр. 02-09-2005 | Отправлено: 12:23 19-10-2012
MERCURY127



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

Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 16:40 19-10-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а я вот несколько похожих кодов под Лин встречал, подо что же они были?
под ПоверРС что ли?
 
Добавлено:
 
а может это Альфа?

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 17:20 19-10-2012
Nastya19kiss

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Данный код написан на языке программирования asm51

Всего записей: 63 | Зарегистр. 22-04-2012 | Отправлено: 19:50 19-10-2012
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Числа с знаком суммируются примерно также, только:
1. Перенос определяется по OV флагу а не C
2. Если резултат положительный- переносим, если отрицательный- занимаем
3. Меняем знак результата на противоположный
 
Примерно так:
 
Код:
 
   org 0
 
    mov R0, #39h
    mov 20h, 0     ;var20h is bit addressable
    clr R1
L1:
    mov A, @R0
    add A, 20h
    mov 20h, A
    jnb w.2, L4  ;overflow?
 
    jnb 07h, L2  ;yes, check sign bit of var20h
 
    dec R1       ;is negative
    sjmp L3
 
L2:
    inc R1       ;is positive
L3:      
    cpl 07h      ;complement sign bit of var20h
L4:
    inc R0
    cjne R0, #41h, L1
 
    END
 

Kод не проверял, 8051 сто лет не трогал- возможны ошибки.

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 22:02 19-10-2012
ne_viens

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

Код:
 
ORG 0
;------------------- init
    mov 39h, #-127
    mov 3ah, #127
    mov 3bh, #-13
    mov 3ch, #-80
    mov 3dh, #14
    mov 3eh, #-28    
    mov 3fh, #-1
    mov 40h, #-127
    
    mov R0, #39h
    mov R4, #0
    mov R5, #0
;------------------- fetch
L1:
    mov A, @R0
;------------------- extend sign
    jnb 0e7h, L2    ;test bit 7 of A
    
    mov B, #0ffh    ;"-" sign extend
    sjmp L3
 
L2:
    mov B, #0        ;"+" sign extend
L3:
;------------------- short add
    add A, R4
    mov R4, A
    mov A, B
    addc A, R5
    mov R5, A
;------------------- next
    inc R0
    cjne R0, #41h, L1
 
    nop
END
 
 

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 17:55 20-10-2012
Nastya19kiss

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я уже доделала. Спасибо большое!!!
 
Добавлено:
Мне еще сортировку нужно сделать. Чет не могу сообразить пока

Всего записей: 63 | Зарегистр. 22-04-2012 | Отправлено: 10:33 21-10-2012
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть готовые алгоритмы сортировки (bubble sort, quick sort, insertion sort, итд итд). Просто надо перенести на 8051. Буббле сорт засмеют, квиксорт нереализуем с данной глубиной стека, сортировка с вставлением будет в самый раз:

Код:
 
ORG 0
    mov 38h, #00h     ;a NULL byte before begin of array is required
 
    mov 39h, #77h   ;an array
    mov 3ah, #44h
    mov 3bh, #00h
    mov 3ch, #66h
    mov 3dh, #55h
    mov 3eh, #22h    
    mov 3fh, #33h
    mov 40h, #11h  
 
    mov R3, #0      ;insertion sort begins here
L1:
    mov A, R3
    add A, #39h
    mov R0, A
    mov A, R3
    add A, #38h
    mov R1, A  
    mov R2, 3
    mov A, @R0
L2:
    mov 4, @R1
    cjne A, 4, L3
    sjmp L4
 
L3:
    jnc L4
 
    mov 4, @R1
    mov @R0, 4
    dec R1
    dec R0
    djnz R2, L2
 
L4:
    mov @R0, A
    inc R3
    cjne R3, #8, L1 ;array length = 8
 
   nop
END
 

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 18:17 21-10-2012
Nastya19kiss

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
можно вопрос....немного не понятна строчка mov 4,@R1. что значит 4?

Всего записей: 63 | Зарегистр. 22-04-2012 | Отправлено: 18:31 21-10-2012
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Четвёртая ячейка памяти (или R4). B данном случае temp переменная.

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 18:43 21-10-2012
Nastya19kiss

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

Всего записей: 63 | Зарегистр. 22-04-2012 | Отправлено: 19:47 21-10-2012
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
\MASM32\BIN\EDITBIN.EXE /LARGEADDRESSAWARE Project.exe
 
никто не знает случайно как это правильно использовать в МАСМ32?
 
http://ntcore.com/4gb_patch.php - вот эта фигня вроде работает

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:17 23-10-2012
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
;echo off
;goto make
.386
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
 
.code
start:
 
    invoke VirtualAlloc, 0, 70000000h, MEM_COMMIT, PAGE_READWRITE
    or eax, eax
    je @F
 
    invoke VirtualFree, eax, 0, MEM_RELEASE
@@:
    invoke ExitProcess, 0
 
END start
;#######################################
:make
 
if exist test.obj del test.obj
if exist test.exe del test.exe
 
\masm32\bin\ml  /c /coff test.bat
\masm32\bin\link /LARGEADDRESSAWARE /SUBSYSTEM:WINDOWS test.obj
 
if exist test.obj del test.obj
dir test.*
pause

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 14:45 24-10-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ne_viens
 
ml  /c /coff test.bat
:)
кстати, почему бат?
 
 
je @F
 
а это куда отскок?

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 15:14 24-10-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