Запись первого элемента массива в РОН - Assembler
Формулировка задачи:
Доброго! Начал потихоньку осваивать асм. Читаю книгу Зубкова: Ассемблер для DOS, Windows и Linux и в ней черным по белому написано
Написав по образу и подобию свою небольшую программку и прогнав ее через Tubdo Debugger заметил, что данные находятся в памяти со смещением 0100, а в регистр AL в итоге записался какой то мусор.
Вот код моей программы:
Читал что dos в область область памяти до $0100 записывает служебную информацию. Собственно вопрос: Почему переменная text указывает на область памяти с адресом $0000, а сами данные располагаются в памяти, начиная с адреса $0100?
text_string db 'Hello world!'
Первые 12 байт содержат ASCII-коды символов строки «Hello world!», и переменная text_string указывает на первую букву в этой строке, так что команда
mov al,text_string
считает в регистр AL число 48h (код латинской буквы H).
; Данные data segment text db "Hello!" data ends ; Начало программы code segment assume cs:code, ds: data start: mov al, text code ends end start
Решение задачи: «Запись первого элемента массива в РОН»
textual
Листинг программы
mov ax,@data mov ds,ax mov es,ax
Объяснение кода листинга программы
- Переменная
ax
используется как регистр для хранения данных и команд - Переменная
@data
используется как метка сегмента данных - Команда
mov
используется для перемещения данных между регистрами и переменными - Команда
ds
используется для указания сегмента данных - Команда
ax
используется для указания регистра ax - Команда
es
используется для указания регистра es
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д