Перейти к содержимому

Фотография

Ассемблеркто знает напишите плиз


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 19

#1
ligioner

ligioner
  • Завсегдатай
  • 173 сообщений
Нужно решить задачки по ассемблеру
  • 0

#2
marcus

marcus
  • Гость
  • 14 сообщений
за бесплатно?если нет то пожалуйста могу.
  • 0

#3
IT-wnik

IT-wnik
  • Завсегдатай
  • 255 сообщений
а что? задачка секретная? Выложить никак нельзя? обсудили бы...
  • 0

#4
marcus

marcus
  • Гость
  • 14 сообщений
поройся в нете, и в рефератах по программированию. Вероятность найти нужную или похожую задачу очень велика.
  • 0

#5
ligioner

ligioner
  • Завсегдатай
  • 173 сообщений
1 Каждая строка разного цвета
четыре строки
2 прямоугольник разбитый по диоганалям и серединам и получившийся каждый треугольник закрасить разным цветом


3 (a*b)/c Значения a dw 4
b dw 4
c dw 4
прямоугольник разбитый на четыре части
верхняя левая вывести на экран a*b/c верхняя правая часть вывести a dw 4
b dw 4
c dw 4
нижняя левая Gr E3B
нижняя правая Имя
  • 0

#6
Joyful

Joyful
  • Случайный прохожий
  • 4 сообщений
за 100$ как нефиг делать :)
  • 0

#7
papa_mozhet

papa_mozhet
  • В доску свой
  • 1 039 сообщений
согласен сделать и за полтинник :)

Сообщение отредактировал Jester_Skovorodker: 03.07.2007, 20:26:32

  • 0

#8
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений
Ну блин, прямо аукцион какой-то. 49.50 :)
  • 0

#9
ligioner

ligioner
  • Завсегдатай
  • 173 сообщений
блин народ - торгаши на барахолке сидят, а здесь я думал пацаны правильные на форуме, помогут и от пива не откажуться, и вообще может и я что нибудь помогу сделать иль советом, а то все в бабло перевели
  • 0

#10
ligioner

ligioner
  • Завсегдатай
  • 173 сообщений
Мне нужно сегодня сделать, кто даст реальное предложение, 87017185481
  • 0

#11
IT-wnik

IT-wnik
  • Завсегдатай
  • 255 сообщений
Твои задачки действительно несерьезные. Если ты хотя бы немного имеешь представление о прерываниях, то воспользуйся вторым! Также нужно перевести в графический режим.
Ну и еще мне лично очень помогло - это книга Зубкова "ассемблер в виндовс юникс...". Без этой книги никуда бы не пошел... И компилить можно обычным TASM-ом... Сегодня не получится посмотреть твои задачки... так может подсказал что-нить
  • 0

#12
yedyge

yedyge
  • Свой человек
  • 879 сообщений

блин народ - торгаши на барахолке сидят, а здесь я думал пацаны правильные на форуме, помогут и от пива не откажуться, и вообще может и я что нибудь помогу сделать иль советом, а то все в бабло перевели

в смысле чужие домашки делать - это правильно?
  • 0

#13
vit_1

vit_1
  • Гость
  • 42 сообщений
издевательство над ASMом
  • 0

#14
Dudya

Dudya
  • Постоялец
  • 370 сообщений
Всем привет,

Некоторые программы могу скомпилировать в файл типа COM, а некоторые не могу.
Использую NASM.
Компиляция осуществляется следующим образом: C:\>nasm Dispsec.asm -o Dispsec.com
После выходит ошибка, называется "label or instruction expected at start of line"
Объясните пожалуйста, где в проге ошибка:
главная процедура:
org 100h
jmp Disp_line
; Данные программы
Sector db 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h; Образец текста
db 18h, 19h, 1Ah, 1Bh, 1Ch, 1Dh, 1Eh, 1Fh;
; ---------------------------------------------------------------
; Процедура дампирует 16 байт памяти в одну строку шестнадцатеричных чисел
; -------------------------------------------------------------------------
; Вызовы: Write_hex, Write_char
; Чтение: Sector
;
Disp_line:
xor bx,bx ; Обнуление BX
mov cx,16 ; Счетчик байтов
.M: mov dl, [Sector+bx] ; Получить 1 байт
call Write_byte_hex ; Вывод шестнадцатеричного числа
mov DL, ' ' ; вывод на экран пробела
call Write_char
inc bx ; возврат за следующим байтом
loop .M
mov ax,4c00h
int 21h ; возврат в DOS
%include 'Videoio.asm' ; подсоединение процедур

Вызываемая процедура:
; Вывод двузначного шестнадцатеричного числа
; ------------------------------------------
; Входы: DL содержит выводимое число
; Вызовы: Write_digit_hex
Write_byte_hex:
mov bl,dl ; Write_byte_hex
mov cl,4
shr dl,cl
call Write_digit_hex
mov dl,bl
and dl,0fh
call Write_digit_hex
ret
; Вывод шестнадцатеричной цифры
; ------------------------------------------
; Входы: BL содержит шестнадцатеричную цифру
; Вызовы: Write_char
Write_digit_hex:
cmp dl,09h ; Write_digit_hex
ja label_b
add dl,30h
jmp label_c
label_b:
add dl,37h
label_c:
call Write_char
ret
; Вывод символа на экран
; -------------------------------------------
; Входы: DL содержит код символа, выводимый на экран
;
Write_char:
push ax
mov ah,2
int 21h
pop ax
ret
  • 0

#15
vladimir55

vladimir55
  • Постоялец
  • 401 сообщений

Некоторые программы могу скомпилировать в файл типа COM, а некоторые не могу. Использую NASM. Компиляция осуществляется следующим образом: C:\>nasm Dispsec.asm -o Dispsec.com После выходит ошибка, называется "label or instruction expected at start of line"

Скомпилировал Ваш текст как есть, убрав инструкцию include
Проверяйте файл videoio.asm
  • 0

#16
Dudya

Dudya
  • Постоялец
  • 370 сообщений
Спасибо за интерес,

А Вы вставили главную процедуру и вспомогательную в один файл?
Просто главная процедура - это один файл Dipsec.asm, и вызываемая это - Videoio.asm.
  • 0

#17
vladimir55

vladimir55
  • Постоялец
  • 401 сообщений

Спасибо за интерес,

А Вы вставили главную процедуру и вспомогательную в один файл?
Просто главная процедура - это один файл Dipsec.asm, и вызываемая это - Videoio.asm.

Да, я просто скопировал текст как есть в один файл и закоментировал ненужное. Программа работает, правда цикл бесконечный. Почему?
P.S. Вызываемые процедуры это: Write_digit_hex, Write_digit_hex и Write_char, а Videoio.asm - подключаемый модуль.

Сообщение отредактировал vladimir55: 21.04.2013, 12:33:06

  • 0

#18
Dudya

Dudya
  • Постоялец
  • 370 сообщений
Насчет цикла:
"
Disp_line:
xor bx,bx ; Обнуление BX
mov cx,16 ; Счетчик байтов
.M: mov dl, [Sector+bx] ; Получить 1 байт
call Write_byte_hex ; Вывод шестнадцатеричного числа
mov DL, ' ' ; вывод на экран пробела
call Write_char
inc bx ; возврат за следующим байтом
loop .M
"
Вроде все правильно mov cx,16 - т.е. счетчик установлен. Я конечно потом попытаюсь через Дебаггер, но не думаю, что это поможет.

Вы скомпилировали через NASM, если да, то через какой (номер)? Вы скомплировали, через C:\>nasm Dispsec.asm -o Dispsec.com ?
Вы не знаете как это прописать в MASM, чтобы два файла отдельно скомпилировать, т.е. в MASM вместо оператора %include какой оператор используется?
  • 0

#19
vladimir55

vladimir55
  • Постоялец
  • 401 сообщений

Вы не знаете как это прописать в MASM, чтобы два файла отдельно скомпилировать, т.е. в MASM вместо оператора %include какой оператор используется?

http://ru.wikipedia.org/wiki/MASM
  • 0

#20
jane6699

jane6699
  • Случайный прохожий
  • 1 сообщений

Насчет цикла:
"
Disp_line:
xor bx,bx ; Обнуление BX
mov cx,16 ; Счетчик байтов
.M: mov dl, [Sector+bx] ; Получить 1 байт
call Write_byte_hex ; Вывод шестнадцатеричного числа
mov DL, ' ' ; вывод на экран пробела
call Write_char
inc bx ; возврат за следующим байтом
loop .M
"
Вроде все правильно mov cx,16 - т.е. счетчик установлен. Я конечно потом попытаюсь через Дебаггер, но не думаю, что это поможет.

Вы скомпилировали через NASM, если да, то через какой (номер)? Вы скомплировали, через C:\>nasm Dispsec.asm -o Dispsec.com ?
Вы не знаете как это прописать в MASM, чтобы два файла отдельно скомпилировать, т.е. в MASM вместо оператора %include какой оператор используется?

Чтобы не было бесконечного цикла, в процедуре Write_byte_hex нужно СХ поместить в стек, то есть, в первой строке процедуры поместить команду PUSH CX, а перед ret POP CX.
  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.