|
|
|
| Нужна помощь...
Предыстория: учусь на втором курсе в техникуме, проходим информатику, там ассемблер. Прошли его на уровне
"
mov ax,13
mov ax,bx
add ax,bx
"
С неделю назад наш преподаватель уволился и нам поставили другого, который раздал нам задание для зачета.. на наш протест о том что мы этого не проходили, сказал что это должно было быть по программе.
задача :
Ввести строчку символьных данных, задав буфер = 12 байт. Заменить в этой строчке каждый четный символ на "5". Выдать полученную строчку символов в 17-тую строку экрана, начиная с 67 позиции.
Что я понял - резервируем область памяти в 12-ть байт, в нее вводим "строчку" потом видимо с помощью цикла по очереди обрабатываем каждый символ (т.е. через один или просто перескакиваем через один символ) и наконец выводим результат, но как это сделать не представляю вообще. Может мне кто-нибуть в этом деле помочь? | |
|
|
|
|
|
|
|
для: гость
(21.12.2006 в 15:33)
| | А на чём пишете MASM, TASM? | |
|
|
|
|
|
|
|
для: cheops
(21.12.2006 в 15:44)
| | Пишем в "блокнотике" потом пропускаем через МАSM и LINK | |
|
|
|
|
|
|
|
для: Гость
(21.12.2006 в 15:47)
| | Что помочь никто не может? Тут еще и не поняно как делать, ранше мы готовую программу в AFDPRO прогоняли и смотрели что там происходит, а тут показали как должно быть - сначала вводим строку, жмем на enter и строка уже измененная появляется на экране. | |
|
|
|
|
|
|
|
для: Гость
(22.12.2006 в 10:21)
| | Assembler вообще хардкорная штука..и думаю здесь мало людей способных тебе быстро помочь..лучше купи подходящую литературу и внедряйся постепенно.. | |
|
|
|
|
|
|
|
для: Alph[p]a
(22.12.2006 в 10:51)
| | Я бы с удовольствием, другое дело что у нас в понедельник экзамены... и мне нужен это зачет :(.
С удовольствием бы сам разобрался, вчера весь день в инете рылся пытаясь что-то найти, как и почему ,но половина непонятна... | |
|
|
|
|
|
|
|
для: Гость
(22.12.2006 в 11:29)
| | Я бы сказал странный у вас техникум...ассамблер изучаете..а мы всё delphi и pascal // да асм штука такая что 85 % из прочитанного я не понимаю ваще..(раньше пытался изучать не пошло..надо дорасти до него..) а его никак и неизучишь за день...даже основы целую неделю перечитывал..интересно а скоко народу из вашей группы с этим заданием справятся?
P.S Сегодня был экзамен по алгоримитизации на 5 сдал.. рассказал про ООП в pascal - е | |
|
|
|
|
|
|
|
для: Alph[p]a
(22.12.2006 в 11:51)
| | > а его никак и неизучишь за день...
Я квантовую физику за ночь учил ;-)))
Так что нет ничего невозможного, особенно в студенческие годы :)) | |
|
|
|
|
|
|
|
для: Axxil
(22.12.2006 в 14:26)
| | >Я квантовую физику за ночь учил ;-)))
Уважуха :))) Сдали надеюсь?
PS Если бы мне кто сдавали кванты и при этом бы заявл, что учил только одну ночь - убил бы! :))) | |
|
|
|
|
|
|
|
для: cheops
(22.12.2006 в 22:21)
| | >Уважуха :))) Сдали надеюсь?
>
>- убил бы! :)))
какая полярная реакция :))) | |
|
|
|
|
|
|
|
для: Alph[p]a
(22.12.2006 в 11:51)
| | ооп в паскале))) жесть))) | |
|
|
|
|
|
|
|
для: 1999
(22.12.2006 в 15:41)
| | >ооп в паскале))) жесть)))
А что такого ? | |
|
|
|
|
|
|
|
для: Alph[p]a
(22.12.2006 в 11:51)
| | >>.интересно а скоко народу из вашей группы с этим заданием справятся?<<
насколько я знаю, пока сдал только один человек, у которого где-то хорошие знакомые :) | |
|
|
|
|
|
|
|
для: Гость
(22.12.2006 в 11:29)
| | За давностью лет и отсутствием практики не могу помочь. Я ASM учил по книжке Тома Свана (Tom Swan). Там кажись и примеры были похожие на Ваш. | |
|
|
|
|
|
|
|
для: гость
(21.12.2006 в 15:33)
| | Вроде получилось, но как-то странно работает.код:
ddd segment
NMA LABEL BYTE
MAX DB 12
REAL DB ?
BUF DB 12 DUP('?')
MK1 DB '5'
MK2 DB '$'
ddd ends
std segment stack
std ends
csc segment
pr proc far
assume ds:ddd,cs:csc,ss:std
push ds
sub ax,ax
push ax
mov ax,ddd
mov ds,ax
PUSH DX
MOV AX,0600H
MOV BH,07
MOV CX,0000
MOV DX,184FH
INT 10H
MOV AH,02
MOV BH,00
MOV DH,01
MOV DL,01
LEA DX,NMA
MOV AH,0AH
INT 21H
mov al,'5'
mov dl,'$'
mov cx,12
lea bx,buf
m1: mov [bx],al
add bx,2
LOOP m1
mov [bx],dl
mov ah,02
mov bx,00
mov dh,01
mov dl,05
int 10h
lea dx,buf
mov ah,09
int 21h
ret
pr endp
csc ends
end pr
|
Конец задачи звучит так : Выдать полученную строку символов в 17 строку экрана,начиная с 67 позиции.
Это задается (как я понял) в
mov ah,02
mov bx,00
mov dh,17
mov dl,05
int 10h
У меня в учебнике это прокоментированно так :
MOV AH,02 ;запрос на установку курсора
MOV BH,00 ;номер экрана
MOV DH,05 ;координаты строки
MOV DL,12 ;координаты столбца ,
Позиция это кординаты столбца или нет?
И еще - при выполнение exe-шника после вывода "результата" в начале сиди несколько непонятных символов - так и должно быть? или нет? | |
|
|
|
|
|
|
|
для: Гость
(25.12.2006 в 11:00)
| | Кстати почему программа нормально запускается только из под FAR-а? | |
|
|
|
|
|
|
|
для: Гость
(25.12.2006 в 11:48)
| | Под "нормальным" запуском что имеется в виду? | |
|
|
|
|
|
|
|
для: cheops
(25.12.2006 в 12:29)
| | ну когда я запускаю ее из винды, то строка ввода данных находится в другом месте и появляются какие-то левые символы, хотя они и так есть), но так больше) | |
|
|
|