любой учебник открой
» Assembler
в том и дело, я в етом полный ноль. а нужна готовая программа. если бы мог открыть учебник то необращался бы сюда 8)
а тут я надеюсь есть хорошие люди
а тут я надеюсь есть хорошие люди
у тебя задачи односложные примеры есть в любом учебнике. если надо для 16 битного процессора вот можешь эммулятор скачать тут примеры для всех простых случаев
http://www.emu8086.com/
http://www.emu8086.com/
спасибо. отличная программа: открыл ее, поклацал, нефига непонятно...
проблему нерешыл некапли...
проблему нерешыл некапли...
как все запущено
Добавлено:
C:\emu8086\examples
эту папку открой там все примеры в файлах, файл такая штука два раза щелкаешь правой клавишей мыши он открывается в связанной программе
Добавлено:
C:\emu8086\examples
эту папку открой там все примеры в файлах, файл такая штука два раза щелкаешь правой клавишей мыши он открывается в связанной программе
спс. тупил. разобрался.
там кучя всяких примеров но нужного нету(
там кучя всяких примеров но нужного нету(
C:\emu8086\examples\file-operations.ASM
спасибо! но чтото она после компмляции ошибку при запуске выдает.
немог бы ты сделать готовый файл и залить его куданить? был бы очень благодарен.
немог бы ты сделать готовый файл и залить его куданить? был бы очень благодарен.
пример в эммуляторе открой и compile нажми. это на фасме наверно написано. и еще тебе надо часть кода выкинуть.
http://bomz-co.narod.ru/fileio.rar
http://bomz-co.narod.ru/fileio.rar
Rooftop
Так не пробовали Гугл
Цитата:
Цитата:
Цитата:
Так не пробовали Гугл
Цитата:
в том и дело, я в етом полный ноль.
Цитата:
нужна готовая программа
Цитата:
для тех кто считает, что здесь место халявных исполнений курсовых и лабораторных работ.
тут обычно помогают тем, кто сам хоть что-то пытается понять и сделать, но что-то не понимает, что-то не получается...
ведь ассемблер изучают и задачки на нём дают обычно не менеджерам по продажам и даже не всем физ.-мат. специальностям
вы сами избрали этот путь? вот и идите по нему сами, ножками... с ручками и с головой...
я бы не был настолько категоричен:
Цитата:
Цитата:
глупо надеятся, что найдутся желающие делать за вас курсовую работу или разбирать страничный код.
Цитата:
я бы не был настолько категоричен:
для тех, кого учат ассемблеру, я ещё мягко зарядил...
имхо
можно подумать ты знаешь сайт, где делают курсовые работы.
по кр. мере на этом сайте я знаю топ где их делают
и для начала он мог бы попробовать стрельнуть сюда
и не я ему профессию/фак выбирал
а вообще мне пох
и для начала он мог бы попробовать стрельнуть сюда
и не я ему профессию/фак выбирал
а вообще мне пох
ето не курсовая. и помощ нужна совсем не мне, хотел сделать человеку приятно и найти для него нужную ему штуку....
сам я менеджер вед, потому в етом и нешарю.
надеялся что тут мне помогут.... видать зря...
сам я менеджер вед, потому в етом и нешарю.
надеялся что тут мне помогут.... видать зря...
Цитата:
ето не курсовая. и помощ нужна совсем не мне, хотел сделать человеку приятно и найти для него нужную ему штуку....
ИМХО, бред или парадокс ... уже менеджеры ищут код программистам да еще и на асме . Выполняйте лучше свою работу, не лезьте в код и оставьте программистам самим искать что нужно.
LOL
ему пример кода нашли, который есть в любом учебнике, а толку никакого
Rooftop, не надо вот только... Где это видано, чтобы менеджеры были заинтересованы в тупых кадрах?
Надо ж так палиться.
Надо ж так палиться.
Помогите не могу понять в чём ошибка, а завтро сдавать курсавую.
Вот прога на расчёт значения формулы в которой заданы четыре операнда(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.
Как это исправить???
Вот прога на расчёт значения формулы в которой заданы четыре операнда(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.
Как это исправить???
SAFERON
Цитата:
out Port Number,Value
out принимает порт от 0 до 255 а у тебя номер порта больше чем надо.
Добавлено:
попробуй переместить в DX номер порта а потом
out DX,al
Цитата:
out 05456h,al - First operand (port) should be 0..255 or DX.
Как это исправить???
out Port Number,Value
out принимает порт от 0 до 255 а у тебя номер порта больше чем надо.
Добавлено:
попробуй переместить в DX номер порта а потом
out DX,al
я фигею, зачем при вычислении формулы нужны ftp и udp порты...
кто-нибудь просветит или здесь пахнет вирусятником?
кто-нибудь просветит или здесь пахнет вирусятником?
akaGM
Цитата:
SAFERON хочет захватить мир!
Цитата:
я фигею, зачем при вычислении формулы нужны ftp и udp порты...
кто-нибудь просветит или здесь пахнет вирусятником?
SAFERON хочет захватить мир!
Спасибо blaro =)
akaGM это не вирус это препод загнул на курсач =)
akaGM это не вирус это препод загнул на курсач =)
Всем добрый вечер.
Требуется аналог кода pascal на ассемблере данных операций:
оператор repeat ... while ...;
действия сложения, вычитания, умножения, деления и инкремент
Заранее спасибо.
Требуется аналог кода pascal на ассемблере данных операций:
оператор repeat ... while ...;
действия сложения, вычитания, умножения, деления и инкремент
Заранее спасибо.
promotic
Цитата:
add, sub, mul/imul, div/idiv, inc
в книге сложно было посмотреть?
Цитата:
смотри "операторы перехода" -- разные jump'ы и примеры к ним
Цитата:
действия сложения, вычитания, умножения, деления и инкремент
add, sub, mul/imul, div/idiv, inc
в книге сложно было посмотреть?
Цитата:
repeat ... while
смотри "операторы перехода" -- разные jump'ы и примеры к ним
Здраствуйте!!!
Нужно написать программу с несколькими модулями, используя EXTRN. Это вроде разобрал.
Составить процедуру, которая представляет на экране строку символов в виде мат-рицы размерности n*m. Использовать эту процедуру для кодирования и декодирова-ния сообщения путем представления его в виде матрицы заданного вида (размерность подбирается в диалоге) и последующей перемены местами указанных пар столбцов и строк.
Заранее спасибо!
Нужно написать программу с несколькими модулями, используя EXTRN. Это вроде разобрал.
Составить процедуру, которая представляет на экране строку символов в виде мат-рицы размерности n*m. Использовать эту процедуру для кодирования и декодирова-ния сообщения путем представления его в виде матрицы заданного вида (размерность подбирается в диалоге) и последующей перемены местами указанных пар столбцов и строк.
Заранее спасибо!
Подскажите пожалуйста, я вот никак не могу найти ошибку в ассемблере:
Условие такое:
Переслать массив из дополнительного сегмента в другую область того же сегмента со следующими изменениями элементов: добавить 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 //-------------------------
Условие такое:
Переслать массив из дополнительного сегмента в другую область того же сегмента со следующими изменениями элементов: добавить 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 //-------------------------
KuPbI4
Цитата:
Почему [BX+10]? Откуда +10?
Цитата:
je E
Цитата:
1. Нет явного указания префикса сегмента.
2. Что в DI, если адрес приёмника был занесён в SI?
Цитата:
Почему число, а не offset?
Цитата:
Не тот регистр инкрементируется.
И не стоит забывать, что 0 и '0' - это не одно и то же.
Цитата:
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' - это не одно и то же.
Abs62
Цитата:
Почему [BX+10]? Откуда +10?
Цитата:
Цитата: mov AL, ES:[BX+10] ;явное указание индексаторов на сегмент ES(т.к. по умолчанию DS:[BX])
Цитата: je E
Почему [BX+10]? Откуда +10?
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
Предыдущая тема: .NET GUI компоненты
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.