Синтаксис и выполнение команд - Assembler

Узнай цену своей работы

Формулировка задачи:

Интересует в частности по FASM Учитывая, что почти вся литература написана под MASM, самый крутой вопрос: Индексы обращения к массиву, в подобной манере, не приемлемы, чертовски нужный нюанс.
mov si, 2
mov ax, mas[si]
error: extra characters on line.
Цепочечные команды: CMPS, LODS, MOVS, SCAS, STOS (B/W/D), особенно в связке с REP, не совсем ясно как выполняются, литература только запутала. Ввод и вывод на консоль: Наблюдал, что есть макросредства из С для ввода и вывода (printf/scanf), как их подключить и использовать в ассемблере? Есть ли другие способы вводить и выводить текст на консоль?

Решение задачи: «Синтаксис и выполнение команд»

textual
Листинг программы
use16
org 100h
mov si,mass0
cld
movs al,[si] ;в al окажется 1
movsb ;в al окажется 2
sub si,mass0 ;вычтем из si адрес начала массива для большей наглядности примера
mov al,[mass0+si] ;в al окажется 3
ret ;мы окажемся там, откуда пришли
mass0 db 1,2,3,4,5

Объяснение кода листинга программы

  1. Переменная mass0 содержит байты 1, 2, 3, 4, 5
  2. Команда use16 указывает на то, что дальнейший код будет использовать 16-битный режим работы
  3. Команда org 100h устанавливает базовый адрес для сегмента данных на 100h
  4. Команда mov si,mass0 загружает в регистр si адрес переменной mass0
  5. Команда cld устанавливает направление переходов в регистре si на прямую (вперед)
  6. Команда movs al,[si] загружает в регистр al значение байта по адресу, который содержится в регистре si
  7. Команда movsb выполняет загрузку значения байта в регистр al и инкрементирует регистр si на 1
  8. Команда sub si,mass0 вычитает из значения регистра si адрес начала массива, чтобы смещение от начала массива было положительным
  9. Команда mov al,[mass0+si] загружает в регистр al значение байта по смещению от начала массива, которое содержит регистр si
  10. Команда ret завершает выполнение кода и возвращает управление туда, откуда оно пришло

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы