Адресация информации - Assembler
Формулировка задачи:
Добрый вечер! Подскажите, пожалуйста...
>>есть строка "qwerty uiopasdfgh jklzxcvbnm"
>>Учитывая содержимое ВХ, загрузить в CL 12-й символ данных;
>>Необходимо непосредственно загрузить в регистр SI порядковый номер первого пробела из цепочки данных.
Есть код
Правильный ли он? Или я запуталась с нумерацией?
Листинг программы
- .MODEL small
- .STACK 100h
- .DATA
- label1 DB 'qwerty uiopasdfgh jklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
- .CODE
- ;в ds записывем адрес начала сегмента данных, т.е. значение сегмента dataseg
- mov ax,@data
- mov ds,ax
- ;получение смещения адреса относительно начала сегмента, т.е количества байтов от начала сегмента до идентификатора адреса
- mov bx,OFFSET label1
- ;базовая адресация
- mov cl, [bx+12] ; 12-й символ
- ;непосредственная адресация
- mov si, 7
Решение задачи: «Адресация информации»
textual
Листинг программы
- mov bx,OFFSET label1
- mov si, 0
- mov ax, [bx+si]
Объяснение кода листинга программы
- Загрузка адреса метки
label1
в регистр bx с помощью инструкции mov bx, OFFSET label1. - Установка значения 0 в регистр si с помощью инструкции mov si, 0.
- Загрузка значения из памяти, адрес которой равен сумме значений в регистрах bx и si, в регистр ax с помощью инструкции mov ax, [bx+si].
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д