eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: daFix (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› нужна помощь с ассемблером
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Статус: Участник

Создано: 29 июля 2013 18:49 New!
Цитата · Личное сообщение · #1

Доброго времени суток. Решил сейчас слегка автоматизировать программу по выводу алфавита, т.е. вывод сделать черезе цикл. И опять проблема.

Вот код:


▓ 00000000: BB4024 mov bx,02440 ;'$@'
▓ 00000003: 43 inc bx
▓ 00000004: 8BD3 mov dx,bx
▓ 00000006: B409 mov ah,9
▓ 00000008: CD21 int 021
▓ 0000000A: 81FB5B24 cmp bx,0245B ;'$['
▓ 0000000E: 75F3 jne 000000003
▓ 00000010: B410 mov ah,010 ;
▓ 00000012: CD16 int 016
▓ 00000014: CD20 int 020
▓ 00000016: 0000 add [bx][si],al
▓ 00000018: 0000 add [bx][si],al
▓ 0000001A: 24 and al,0

В отладчике проверял, все нормально. Проблема вот в чем: выводит разные иероглифы. Как то ранее я создавал подобную тему, проблема была в $, т.к. я забыл его в строке указать. Но сейчас 24 в строке вывода есть, но опять иероглифы. В чем причина? Пишу под MS-DOS


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 29 июля 2013 19:31 New!
Цитата · Личное сообщение · #2

Никогда не понимал, вроде бы взрослые люди, понимаем, что такое мс-дос и какая там разрядность и понимаем какие сейчас времена и какие разрядности в современных компьютерах. Но вот зачем, зачем учить 16 битный ассемблер?

Ранг: 0.4 (гость)
Статус: Участник

Создано: 29 июля 2013 19:33 New!
Цитата · Личное сообщение · #3

BoRoV, я только учу ассм, Дневники чайника. Чтива 0, виток0 - там все для ms-dos. Позже под вин перейду.


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 29 июля 2013 19:36 New!
Цитата · Личное сообщение · #4

xtemps пишет:
Позже под вин перейду.

Переходите сразу, там уже многое поменяется. Уже не используют прерывания.

Ранг: 0.4 (гость)
Статус: Участник

Создано: 29 июля 2013 19:43 New!
Цитата · Личное сообщение · #5

BoRoV, учту. Так данную проблему решить можно?


Ранг: 516.8 (!)
Статус: Участник
Победитель турнира 2010

Создано: 29 июля 2013 20:01 · Поправил: OKOB New!
Цитата · Личное сообщение · #6

Проблема в том, что в DX должен находиться адрес строки которую выводить, а вы туда помещаете саму строку.

mov bx, '$A'
mov dx, offset msg
_next:
mov w,[dx],bx
mov ah,9
int 21h
inc bx
cmp bx, '$['
jnz _next
mov ah,10h
int 16h
int 20h

msg dw 0

| Сообщение посчитали полезным: xtemps


Ранг: 0.4 (гость)
Статус: Участник

Создано: 29 июля 2013 20:02 New!
Цитата · Личное сообщение · #7

OKOB, благодарю


Ранг: 488.7 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 29 июля 2013 20:40 · Поправил: plutos New!
Цитата · Личное сообщение · #8

Уважаемый Матрос!
Если бы вы внимательно читали то, что вам отвечают, то сэкономили бы и свое и чужое время.
В вашей предыдущей теме я привел пример простейшей программки:
;this is your DATA section:
mystring db 'Hello there','$'

;this is your CODE section:
mov ah,09 ;function number
mov dx, seg mystring; address of string(segment) --> эта строчка как бэ намекает, что там нужен именно адрес.
mov ds, dx
mov dx, offset mystring ; address of string (offset) --> эта строчка как бэ намекает, что там нужен именно адрес.

int 21h ;transfer control to DOS!

И еще совет: научитесь пользоваться debugger'ом. Это лучший учитель и советчик. Без него - никуда.

Ранг: 0.4 (гость)
Статус: Участник

Создано: 29 июля 2013 20:49 New!
Цитата · Личное сообщение · #9

plutos, согласен, невнимательно прочитал.. Спасибо.

Ранг: 15.4 (новичок)
Статус: Участник

Создано: 30 июля 2013 00:36 New!
Цитата · Личное сообщение · #10

BoRoV пишет:
Никогда не понимал, вроде бы взрослые люди, понимаем, что такое мс-дос и какая там разрядность и понимаем какие сейчас времена и какие разрядности в современных компьютерах. Но вот зачем, зачем учить 16 битный ассемблер?

Например, чтобы реверсить написанные под ms-dos приложения. Я бы не удивился, если бы увидел такой вопрос на каком-нибудь программерском форуме, но для бывшего кряклаба вопрос странный.


Ранг: 533.6 (!)
Статус: Uploader
retired

Создано: 30 июля 2013 01:14 · Поправил: BoRoV New!
Цитата · Личное сообщение · #11

Vintersorg пишет:
Например, чтобы реверсить написанные под ms-dos приложения.

Вероятность подобной ситуации не больше чем то, что мы с тобой соседи.

Этот дневник писался в то время когда данная архитектура была актуальна, а сейчас он представляет только историческую ценность или академическую, но никак не практическую. А учатся по нем из-за отсутствия другого, на васме ведь уже давно перевели Iczelion'a и советуют, а также на всех буржуйских форумах тоже советуют учить асм по нему, хотя оно тоже не свежое, ему более 10 лет.


Ранг: 296.9 (наставник)
Статус: Участник

Создано: 30 июля 2013 04:03 New!
Цитата · Личное сообщение · #12

Не, ну а чё? BIOS, например, по большей части на 16-битном ассемблере в реальном режиме, MBR-сектора на нём же. Но в BIOS есть и 32битный код в защищённом режиме. Всё нужно знать! Дерзай, Vintersorg!

Только на 16бит Real Mode не задерживайся, оставь закладки и, правда, переходи к более актуальному ассемблеру. Я вот всё никак на x64 не могу времени побольше найти, а за ним будущее...


Ранг: 527.1 (!)
Статус: Участник
5KRT

Создано: 30 июля 2013 05:03 New!
Цитата · Личное сообщение · #13

BoRoV пишет:
Вероятность подобной ситуации не больше чем то, что мы с тобой соседи.

Мы с тобой соседи и ни один раз) Вот мне и биос приходилось реверсить. Так что не надо сбивать человека с пути истинного. Ну и как сказал Ден, сильно задерживаться тоже не стоит

Ранг: 488.4 (мудрец)
Статус: Участник

Создано: 30 июля 2013 09:16 New!
Цитата · Личное сообщение · #14

поддерживаю daFix и DenCoder знанья разные нужны знанья разные важны


Ранг: 1986.5 (!!!!)
Статус: Модератор
retired

Создано: 30 июля 2013 09:42 New!
Цитата · Личное сообщение · #15

Давайте ближе к теме уже. А если вопрос закрыт, то и тему закрыть пора.
 eXeL@B —› Вопросы новичков —› нужна помощь с ассемблером

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS