Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Anastasia556
0 / 0 / 0
Регистрация: 09.09.2014
Сообщений: 3
1

Написать подпрограмму заполнения всего дополнительного сегмента (ES)

09.09.2014, 07:22. Просмотров 1028. Ответов 8
Метки нет (Все метки)

Здравствуйте, помогите мне пожалуйста Совсем запарилась, я в этом ничего не понимаю, а вот и задача.

Нужно написать подпрограмму заполнения всего дополнительного сегмента (ES) последовательностью байтов со значениями 1, 2, 4, 8, …64, 128, 1, 2, 4...(бегущая единица), реальный режим работы процессора.
И если можно хотя бы немного объяснений, заранее очень благодарна
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2014, 07:22
Ответы с готовыми решениями:

Декодировать команды и данные в соответствии с приведенным дампом сегмента кода и содержимым сегмента данных
.8086 Декодировать команды и данные в соответствии с приведенным дампом...

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

написать подпрограмму
Всем здравствуйте и доброго времени суток, помогите пожалуйста написать...

Помогите написать подпрограмму для МП КР580ВМ80
Не могли бы помочь написать подпрограмму умножения двух однобайтных чисел. Не...

Написать подпрограмму деления целых однобайтных чисел
Уважаемые форумчане буду очень признателен за помощь с решением задачи в nasm ...

8
R71MT
4632 / 1438 / 306
Регистрация: 29.07.2014
Сообщений: 2,476
Записей в блоге: 5
09.09.2014, 21:48 2
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Организовать вывод бегущей текстовой строки
0
Thread
programmer
1871 / 336 / 27
Регистрация: 01.06.2011
Сообщений: 2,956
Записей в блоге: 1
11.09.2014, 03:16 3
Лучший ответ Сообщение было отмечено Taatshi как решение

Решение

Anastasia556

Assembler
1
2
3
4
5
6
7
     mov cx,-1
     xor di,di
     mov al,1
@running:
     stosb
     rol al,1
loop @running
0
R71MT
4632 / 1438 / 306
Регистрация: 29.07.2014
Сообщений: 2,476
Записей в блоге: 5
15.09.2014, 22:44 4
Цитата Сообщение от Anastasia556 Посмотреть сообщение
написать подпрограмму заполнения всего дополнительного сегмента (ES)
Thread , сорри, но где здесь сегмент ES??? ТС наверное хотел вывести инфу в видеобуфер?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
START:
      MOV BX,0B800h        ; Загружаем в регистр ES,
      MOV ES,BX            ; ..сегмент видеобуфера (B800h).
      XOR DX,DX            ; очищаем DХ
      MOV DL,01            ; DL хранит начальное значение
      MOV DI,40            ; начинаем с центра экрана (80/2=40)
 
TEXT:
      MOV AH,10h           ; в AH - атрибуты символа (1 - синий символ, 0 - чёрный фон)
      MOV AL,DL            ; в AL - выводимое на экран значение
      MOV [ES:DI],AX       ; заносим по адресу B800:0028, атрибут и значение
 
      XOR AX,AX            ; очищаем регистр АХ..
      MOV AH,09h           ; функция 09h прерывания INT-10h (вывод на экран)
      INT 10h              ; вызываем прерывание                                
 
      MUL DL,02            ; умножаем DL на 2 (следующее значение)
      CMP DL,0128d         ; ..это 128?
      JNZ TEXT             ; если нет, то мотаем цикл "TEXT"
 
      INT 20h              ; если да, то на выход!
...сразу говорю, я не профи, и пишу чисто для своего образования. ...и как изменить размер шрифта?!
0
Thread
programmer
1871 / 336 / 27
Регистрация: 01.06.2011
Сообщений: 2,956
Записей в блоге: 1
15.09.2014, 22:55 5
R71MT

stosb

единственная ошибочка ,что CX надо было задать в 0 для заполнения всех 65536 байт

не думаю что надо было заполнять видеобуфер.
это типичная задачка для начинающих с конкретным условием.
1
R71MT
4632 / 1438 / 306
Регистрация: 29.07.2014
Сообщений: 2,476
Записей в блоге: 5
15.09.2014, 23:04 6
Thread , спасибо! CX вообщем-то счётчик, мудро его использовать, что я не сделал! Есть много вопросов и если ты ткнёш меня носом, буду тебе признателен! Лучше открою новую тему...
0
Mikl___
Автор FAQ
11979 / 6248 / 594
Регистрация: 11.11.2010
Сообщений: 11,307
16.09.2014, 08:40 7
Thread,
а вот так в 4 раза быстрее
Assembler
1
2
3
4
5
6
     mov cx,3FFFh
     xor edi,edi
     mov eax,8040201h
@running: stosd
     rol eax,4
     loop @running
0
Thread
programmer
1871 / 336 / 27
Регистрация: 01.06.2011
Сообщений: 2,956
Записей в блоге: 1
16.09.2014, 13:36 8
Mikl___

Цитата Сообщение от Thread Посмотреть сообщение
единственная ошибочка ,что CX надо было задать в 0 для заполнения всех 65536 байт
А?
0
Mikl___
Автор FAQ
11979 / 6248 / 594
Регистрация: 11.11.2010
Сообщений: 11,307
16.09.2014, 13:56 9
упс... в моём варианте СХ=4000h
0
16.09.2014, 13:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2014, 13:56

Как написать программу, использующую готовую подпрограмму
Всем доброго времени суток. ; ------------- Подпрограмма ArrayToStr...

Написать подпрограмму, вычисляющую целую часть при делении С = А div В. Предусмотреть B = 0.
Вечер добрый. Нужна Ваша помощь в двух задачах. условия для каждой задачи:...

Написать программу построения сегмента и заполнения его некоторым цветом после нажатия на клавишу Enter
Написать программу построения сегмента и заполнения его некоторым цветом после...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru