![]() |
eXeL@B —› Вопросы новичков —› нужна помощь с ассемблером |
Посл.ответ | Сообщение |
|
Создано: 29 июля 2013 18:49 · Личное сообщение · #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 ![]() |
|
Создано: 29 июля 2013 19:31 · Личное сообщение · #2 |
|
Создано: 29 июля 2013 19:33 · Личное сообщение · #3 |
|
Создано: 29 июля 2013 19:36 · Личное сообщение · #4 |
|
Создано: 29 июля 2013 19:43 · Личное сообщение · #5 |
|
Создано: 29 июля 2013 20:01 · Поправил: OKOB · Личное сообщение · #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 ----- 127.0.0.1, sweet 127.0.0.1 ![]() |
|
Создано: 29 июля 2013 20:02 · Личное сообщение · #7 |
|
Создано: 29 июля 2013 20:40 · Поправил: plutos · Личное сообщение · #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'ом. Это лучший учитель и советчик. Без него - никуда. ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 29 июля 2013 20:49 · Личное сообщение · #9 |
|
Создано: 30 июля 2013 00:36 · Личное сообщение · #10 BoRoV пишет: Никогда не понимал, вроде бы взрослые люди, понимаем, что такое мс-дос и какая там разрядность и понимаем какие сейчас времена и какие разрядности в современных компьютерах. Но вот зачем, зачем учить 16 битный ассемблер? Например, чтобы реверсить написанные под ms-dos приложения. Я бы не удивился, если бы увидел такой вопрос на каком-нибудь программерском форуме, но для бывшего кряклаба вопрос странный. ![]() |
|
Создано: 30 июля 2013 01:14 · Поправил: BoRoV · Личное сообщение · #11 Vintersorg пишет: Например, чтобы реверсить написанные под ms-dos приложения. Вероятность подобной ситуации не больше чем то, что мы с тобой соседи. Этот дневник писался в то время когда данная архитектура была актуальна, а сейчас он представляет только историческую ценность или академическую, но никак не практическую. А учатся по нем из-за отсутствия другого, на васме ведь уже давно перевели Iczelion'a и советуют, а также на всех буржуйских форумах тоже советуют учить асм по нему, хотя оно тоже не свежое, ему более 10 лет. ----- Лучше быть одиноким, но свободным © $me ![]() |
|
Создано: 30 июля 2013 04:03 · Личное сообщение · #12 Не, ну а чё? BIOS, например, по большей части на 16-битном ассемблере в реальном режиме, MBR-сектора на нём же. Но в BIOS есть и 32битный код в защищённом режиме. Всё нужно знать! Дерзай, Vintersorg! ![]() Только на 16бит Real Mode не задерживайся, оставь закладки и, правда, переходи к более актуальному ассемблеру. Я вот всё никак на x64 не могу времени побольше найти, а за ним будущее... ----- IZ.RU ![]() |
|
Создано: 30 июля 2013 05:03 · Личное сообщение · #13 |
|
Создано: 30 июля 2013 09:16 · Личное сообщение · #14 |
|
Создано: 30 июля 2013 09:42 · Личное сообщение · #15 |
![]() |
eXeL@B —› Вопросы новичков —› нужна помощь с ассемблером |