Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Assembler

Автор: Abs62
Дата сообщения: 14.11.2009 21:46
Roman1992
А с "не даром" - в эту тему.
Автор: akaGM
Дата сообщения: 15.11.2009 12:45
Roman1992
не только на первой, но и на _каждой_ вверху,
мы ж не звери...
Автор: Roman1992
Дата сообщения: 15.11.2009 21:34
Там не отвечают!Ну напешите программу пожалуйста!
Автор: optimized
Дата сообщения: 21.11.2009 14:03
нужно реализовать вывод на экран ascii символ клавиши, используя 0ah и int 10h
символ сохраняется в al, а как его вывести?
Автор: akaGM
Дата сообщения: 21.11.2009 14:12
optimized

Код: xor bx. bx
mov ah, 0ah
mov cx, 1
mov al, 'A' ;в al выводимый символ или его код, например mov al, 65
int 10h
Автор: optimized
Дата сообщения: 21.11.2009 18:14
akaGM
мне именно код вывести нужно, при нажатии клавиши
Автор: akaGM
Дата сообщения: 21.11.2009 21:01
optimized

Цитата:
нужно реализовать вывод на экран ascii символ клавиши, используя 0ah и int 10h
символ сохраняется в al, а как его вывести?

это ответ на твой вопрос

ты не умеешь клавиши обрабатывать?
ну так и спрашивай тогда конкретнее

через ДОС
mov ah, 1
int 21h
; в al=код нажатой клавиши

или через БИОС:
xor ax, ax
int 16h
; в al=character, ah=scan code

ну почитвй где-нибудь, это же просто...
Автор: optimized
Дата сообщения: 21.11.2009 22:09

Цитата:
ну так и спрашивай тогда конкретнее

ладно. как мне вывести то, что находиться в al? не символ, а код? (через биос)
из того что я читал и как я это понял, у меня не получилось сделать. я привык по крайней мере попробовать делать самому, не получилось пока
int 16h
xor bx,bx
mov ah,0ah
mov cx,1
mov al,ah
int 10h
насколько я понял должно быть что-то вроде этого?
если так, то всегда выводит O
Автор: Abs62
Дата сообщения: 21.11.2009 22:18
optimized

Цитата:
mov ah,0ah
mov cx,1
mov al,ah

Ну и что после этого будет в al?
И что всё-таки надо вывести? Введённый символ? Его код? Скан-код нажатой клавиши?
Автор: optimized
Дата сообщения: 21.11.2009 22:24

Цитата:
Ну и что после этого будет в al?

насколько я понял там будет символ, код которого нам надо вывести

Цитата:
И что всё-таки надо вывести?

код
Автор: Abs62
Дата сообщения: 21.11.2009 22:33
optimized

Цитата:
насколько я понял там будет символ, код которого нам надо вывести

Откуда?
mov ah,0ah - помещает число 0Ah в ah.
mov al,ah - помещает содержимое ah в al.
Откуда после этого в al возьмётся искомый символ?

Цитата:
код

Значит, надо перевести число в строку символов, а потом эту вывести эту строку.
Автор: akaGM
Дата сообщения: 22.11.2009 07:43
optimized
да, бл, партизан, для тебя клещи нужны...

Цитата:
код

код чего?!
есть скан-код клавиши -- 1=esc, 2, 3 (считается прямо на клавиатуре слева-направо, сверху-вниз), а есть ascii-код символа '1'=49, '2'=50, 'A'=65
чё те надо?

Код:
xor ax,ax
int 16h
mov dh, ah
xor bx, bx
mov ah, 0ah
mov cx, 1
int 10h ; выводим чар
mov al, dh
int 10h ; выводим скан-код клавиши
Автор: Abs62
Дата сообщения: 22.11.2009 12:14
akaGM

Цитата:

mov al, dh
int 10h ; выводим скан-код клавиши

А переводить число в символы кто будет?
Автор: akaGM
Дата сообщения: 22.11.2009 12:24
Abs62

Цитата:
А переводить число в символы кто будет?

optimized
типа домашнее задание...
Автор: optimized
Дата сообщения: 22.11.2009 12:27
ascii нужно вывести, написал же в первом сообщении
я так понял что его так просто не вывести? нужно писать более большой код?
Автор: akaGM
Дата сообщения: 22.11.2009 13:15
optimized
ага, более большoй
даю идею для вывода числа 0..9 (т.е.) одной цифры:


Код: ; al=цифра, которую надо вывести

add al, '0' ; преобразуем цифру в её аски-представление

; выводим
Автор: optimized
Дата сообщения: 30.11.2009 22:19
благодарю за помощь, разобрался вроде
Автор: LuckyStrike
Дата сообщения: 03.12.2009 18:31
Доброго времени суток парни....нужно решить реализовать алгоритм квайна Мак-Класки в с#....никак не соображу как....помогите плиз

Добавлено:
пордон...описался) Доброго времени суток парни....нужно решить реализовать алгоритм квайна Мак-Класки в ....никак не соображу как....помогите плиз
Автор: RoniGT
Дата сообщения: 05.12.2009 09:55
Пожалуйста, помогите решить задачу!Определение минимального значения среди положительных элементов матрицы.Буду очень признателен!
Автор: akaGM
Дата сообщения: 06.12.2009 12:23
RoniGT
а ты сам с этой задачей что-нибудь делал?
если нет, то читай самый первый пост на этой странице
Автор: RoniGT
Дата сообщения: 08.12.2009 14:48
Вот задача на паскале. Но её же надо сделать на асме!!!! Помогите плиз горю!!!!
[more]uses crt;
var a:array[1..50]of real;
n,i,kp,ko,kn:integer;
begin
clrscr;
write('n=');readln(n);
for i:=1 to n do
begin
write('a[',i,']=');
readln(a[i]);
end;
writeln;
kp:=0;ko:=0;kn:=0;
for i:=1 to n do
begin
if a[i]>0 then
kp:=kp+1
end;
writeln;
write('kol pol=',kp);
readln
end.
[\more]
Автор: SERGE_BLIZNUK
Дата сообщения: 08.12.2009 19:45
RoniGT

Цитата:
Вот задача на паскале. Но её же надо сделать на асме!!!! Помогите плиз горю!!!!

Если Вы думаете, этот код решает ту задачу, что Вы писали выше ("минимального значения среди положительных элементов матрицы") — то Вы заблуждаетесь.
Это подсчёт количества положительных элементов массива. И в код лишние переменные (ko kn - не нужны)

а по поводу реализации на Асме - так что Вы сами для решения сделали? Сам алгоритм подсчёта положительных чисел не так уж и сложен (точнее, прост! ) но ввод элементов массива (причем элементы массива вещественные числа), вывод элементов массива — это не такая уж и тривиальная задача (ну лично для меня, как минимум).

Так что - дерзайте, воспользуйтесь поиском, литературку почитайте и всё у Вас получится. А вот если подсказать по коду что-то - так милости прошу, думаю, тут помогут...

p.s. если хотите, чтобы задачку сделали за Вас, то либо надейтесь на чудо и на добрых людей (такие бывают, я сам видел! ), либо есть такое слово - "фриланс"...
Автор: snike555
Дата сообщения: 10.12.2009 02:15

Цитата:
Сам алгоритм подсчёта положительных чисел не так уж и сложен (точнее, прост! ) но ввод элементов массива (причем элементы массива вещественные числа), вывод элементов массива — это не такая уж и тривиальная задача (ну лично для меня, как минимум).


За что люблю MASM32 за то что там с вводом и выводом проше,

RoniGT
Какая среда?

Вообще ресурсы типа http://wasm.ru/ предлагаю вынести в шапку.
Автор: akaGM
Дата сообщения: 10.12.2009 07:52
snike555
что ты здесь забыл, пару-тройку постов?
Автор: RoniGT
Дата сообщения: 13.12.2009 03:57
Среда TASM!!!
Автор: karakurt2
Дата сообщения: 13.12.2009 18:16
RoniGT
напишите программную реализацию на языке высокого уровня и дизассемблируйте объектный код.
Автор: snike555
Дата сообщения: 15.12.2009 17:58

Цитата:
напишите программную реализацию на языке высокого уровня и дизассемблируйте объектный код.


Сам так делал раз, но это от преподавателя зависит ибо если преподаватель заставит объяснить код (почему сделал так, а не проще как учили) то может получиться конфуз, так как компиляторы бывает такого навертят.
Но на начальном этапе это конечно может показаться проще чем писать программу с нуля.

akaGM
Иногда я что-то спрашиваю, иногда помогаю, пиши, пожалуйста, подобные вопросы в личку ибо подобные посты сам понимаешь чем являются .

RoniGT
Вот задача посложней твоей, тебе выкинуть лишнее и немного поправить (по моему отличная демка):
http://programmersforum.ru/showthread.php?t=45344


Автор: alstan
Дата сообщения: 18.12.2009 22:47
Помогите пожалуйств с программой:
Ввести слово из четырех букв. Вывести его в столбик. Предварительно сделать очистку экрана.
Автор: aspis
Дата сообщения: 19.12.2009 13:33
alstan
на Masm

Код:
.386
.model flat,stdcall
option casemap:none

includelib kernel32.lib
include windows.inc
include kernel32.inc

.data
hIn dd ? ; ввод
hOut dd ? ; вывод
nRWCount dd ? ; сколько записали-считали
buffer db 4 dup (?) ; буфер
LF db 13,10 ; перенос строки
i dd ?
.code
start:
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov hOut,eax
invoke GetStdHandle,STD_INPUT_HANDLE
mov hIn,eax
invoke ReadConsole,hIn, addr buffer,4,addr nRWCount,NULL
invoke WriteConsole,hOut,addr LF,2,addr nRWCount,NULL
lea esi,buffer
mov i,0
.while i<4
invoke WriteConsole,hOut,esi,1,addr nRWCount,NULL
invoke WriteConsole,hOut,addr LF,2,addr nRWCount,NULL
inc esi
inc i
.endw
invoke WriteConsole,hOut,addr LF,2,addr nRWCount,NULL
invoke Sleep,2000
invoke ReadConsole,hIn, addr buffer,4,addr nRWCount,NULL
invoke ExitProcess,0
end start
Автор: blaro
Дата сообщения: 14.01.2010 21:08
Доброго времени всем! Я тут программу написал, только не знаю правильно или нет.
Программа должна рассортировать числа в массиве от меньшего к большему, т.е. в возростающем порядке.
Вот код:

Цитата:

name lab6t5
data segment
a db 12,3,4,16,17,2,1,8,21,5
n db 9
data ends

sseg segment stack
dw 100h dup(?)
sseg ends

code segment
    assume cs:code, ds:data, ss:sseg
start:
    mov ax ,data
    mov ds, ax
    mov si,0
    mov cl,n
    xor ax,ax
lp1:    mov al,a[si]
    mov di,si
    mov ch,cl
lp2:    cmp al,a[di]
    jns swap
    inc di
    dec ch
    jnz lp1
    jmp lp1
swap:    mov ah,a[di]
    mov a[di],al
    mov al,ah
    inc di
    dec ch
    jnz lp2
    mov ah,4ch
    int 21h
code ends
end start

Проверьте пожалуйста, я правильно написал? Писал на асме 8086


Добавлено:
Да, еще один вопрос. У меня винда 7 х64 стоит. В какой рабочей среде можно писать программы на асме 8086?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384

Предыдущая тема: .NET GUI компоненты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.