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

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

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

Цитата:
int 16h ah=10h ещё вроде есть

да, конечно же, ты прав, именно 16-ое...
я имел в виду биос, а не интеррапт
ошибся номером 9 -- 16

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 16:51 25-05-2011
praidik



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго всем времени суток.
 
Помогите пожалуйста...
Есть код
 
Model small
Stack 1024
Dataseg
Msg db 13,10,13,10,('You really want ends programm? y/n $')
Msg2 db 13,10,('Choys for contine... $')
Msg3 db 13,10,13,10,('Press A "+" two nambers $')
Msg4 db 13,10,('Press B "*" two nambers $')
Msg5 db 13,10,('Press C "-" two nambers $')
Msg6 db 13,10,('Press D "/" two nambers $')
Msg7 db 13,10,('Choys: $')
Msg8 db 13,10,13,10,('Thanks for using our program... $')
Msg9 db 13,10,('OTBET: $')
numb1 dw 4
numb2 dw 5
codeseg
 
Start:
Mov ax,@data
Mov ds,ax
 
jmp question
 
question:
mov ah, msg
Mov dx, offset msg
Mov ah, 09h
Int 21h
mov ah, msg7
Mov dx, offset msg7
Mov ah, 09h
Int 21h
Mov ah, 1h
int 21h  
cmp al, 'y'  
je close  
cmp al, 'n'  
je menu
call close
 
menu:
mov ah, msg2
Mov dx, offset msg2
Mov ah, 09h
Int 21h
mov ah, msg3
Mov dx, offset msg3
Mov ah, 09h
Int 21h
mov ah, msg4
Mov dx, offset msg4
Mov ah, 09h
Int 21h
mov ah, msg5
Mov dx, offset msg5
Mov ah, 09h
Int 21h
mov ah, msg6
Mov dx, offset msg6
Mov ah, 09h
Int 21h
mov ah, msg7
Mov dx, offset msg7
Mov ah, 09h
Int 21h
 
mov ah, 1
int 21h
cmp al, 'a'
je slozh                       ;Сложение
cmp al, 'b'  
je umnozh                      ;Умножение
;cmp al, 'c'  
;je minus                ; Вычитание
;cmp al, 'd'  
;je delenie          ; Деление
 
umnozh:                     ;Умножение
 
Int 21h
 
jmp question
   
slozh:                  ;Сложение
mov ax, word ptr numb1
mov bx, word ptr numb2
add ax, bx
aaa
xchg al,ah
add ah, '0'
int 29h
mov al,ah
int 29h
Mov ah, 1h
Int 21h
 
jmp question
 
minus:                       ; Вычитание
 
Int 21h
 
jmp question
 
delenie:                     ; Деление
Int 21h
 
jmp question
 
Close:
mov ah, msg8
Mov dx, offset msg8
Mov ah, 09h
Int 21h
  mov ah,0
  int 16h
End start
 
При попытке добавить например вывод переменной, при компиляции выдаёт ошибку, выход за пределы памяти... Из-за этого я не могу закончить программу...  
Хотелось бы найти и справить ошибку...

Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 12:44 28-05-2011 | Исправлено: praidik, 12:46 28-05-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
praidik
вообще-то неплохо спросить у того, кто это писал:
например, где метка question? и что такое
Цитата:
добавить например вывод переменной

 
кстати, строки на вывод для 9/21h обычно завершают $ вот так:
Msg db 13,10,13,10, 'You really want ends programm? y/n', '$'

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



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

Цитата:
question:  
 mov ah, msg  
 Mov dx, offset msg  
 Mov ah, 09h  
 Int 21h  
 mov ah, msg7  
 Mov dx, offset msg7  
 Mov ah, 09h  
 Int 21h  
 Mov ah, 1h  
 int 21h  
 cmp al, 'y'  
 je close  
 cmp al, 'n'  
 je menu  
 call close

 
3й столбец с начала кода
 

Цитата:
и что такое
Цитата: добавить например вывод переменной

Например в метку "umnozh:   ;Умножение"
Добавить
mov ah, msg7  
 Mov dx, offset msg7  
 Mov ah, 09h
 
Если добавить, то выдаёт ошибку... Также будет если добавить в любое другое место кода...

Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 21:16 28-05-2011 | Исправлено: praidik, 21:17 28-05-2011
akaGM

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

Цитата:
Если добавить, то выдаёт ошибку

при компиляции? какую?

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 13:05 29-05-2011
praidik



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
**Error** (new).asm(35) Relative jump out range by 0009h bytes

Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 14:13 29-05-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
praidik
ну пиши вместо
jmp __label
 
jmp far __label

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 14:38 29-05-2011
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Да у него не с jmp проблема, а с je.
 
 
praidik

Цитата:
 cmp al, 'y'    
 je close    

Английским же языком написано, что слишком далёкий переход. Используй jmp для таких дистанций.

Код:
 cmp al, 'y'    
 jne no_close
 jmp close
no_close:
...
 
И так везде, где потребуется.

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

Всего записей: 6080 | Зарегистр. 22-10-2005 | Отправлено: 15:02 29-05-2011
Qraizer



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Третий раз за пол-недели. Прям эпидемия. Вот, не жалко третий раз линк дать.

----------
Одни с годами умнеют, другие становятся старше.

Всего записей: 613 | Зарегистр. 08-08-2006 | Отправлено: 21:06 29-05-2011 | Исправлено: Qraizer, 21:08 29-05-2011
praidik



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

Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 07:48 30-05-2011
Batyrin007

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

Всего записей: 2 | Зарегистр. 07-06-2011 | Отправлено: 17:20 07-06-2011
VGrad



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

Цитата:
помогите пожалуйста написать программу

А в чём проблема ?
 
Если во всём, то вам сюда: http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=2395#1

Всего записей: 59 | Зарегистр. 25-04-2006 | Отправлено: 00:22 08-06-2011
Batyrin007

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

Всего записей: 2 | Зарегистр. 07-06-2011 | Отправлено: 08:23 08-06-2011
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Batyrin007
 
прочитайте в шапке данной темы "важное примечание"

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 11:08 08-06-2011
akaGM

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

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 11:10 08-06-2011
Master_Profi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нигде не смог найти точного описания как задается массив...если можно напишите как...можно ли задавать его из N элементов, и ,например, как сложить последние три цифры(первые).

Всего записей: 68 | Зарегистр. 13-11-2010 | Отправлено: 02:09 10-06-2011
akaGM

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

Цитата:
как задается массив

например, можно вот так:
array1 dd 1,2,3,4,5 ;длинных целых
array2 db 1,2,3,4,5 ;байт
array3 dw 1,2,3,4,5 ;слов
array4 db '1','2','3','4','5' ;символов
 

Цитата:
как сложить последние три цифры(первые)

а это как понимать?

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 02:45 10-06-2011
Master_Profi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну, как допустим написать программку чтоб сложить числа "3", "4", "5",в С++ бы сделал, а вот тут не знаю как...наверно надо какой-то цикл задать, начинающийся с последней цифры и который повторяется только 3 раза. но как выразить не знаю.

Всего записей: 68 | Зарегистр. 13-11-2010 | Отправлено: 07:37 10-06-2011
VGrad



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

Цитата:
нигде не смог найти точного описания как задается массив

Смотрим здесь:
http://lmgtfy.com/?q=%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2+%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80
 
И первым в списке:
http://www.kolasc.net.ru/cdo/programmes/assembler/massiv.html

Всего записей: 59 | Зарегистр. 25-04-2006 | Отправлено: 10:04 10-06-2011
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Master_Profi
сложение трёх первых элементов массива:
Код:
array3 dw 1,2,3,4,5
 
xor ax, ax
mov cx, 3
lea bx, word ptr array3
@@add:
  add ax, word ptr [bx]
  add bx, 2
loop @@add

ты в своих постах уже второй раз путаешь понятие "цифра" и "число" или элемент массива,
и наc в заблуждение вводишь...

Всего записей: 24114 | Зарегистр. 06-12-2002 | Отправлено: 12:56 10-06-2011 | Исправлено: akaGM, 02:28 11-06-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