· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Под толкните к дальнейшему развитию

Посл.отвђт Сообщенiе


Дата: Ноя 14, 2003 19:33:45

Короче в data segment:
NAMEPAR LABEL BYTE ;Имя списка параметров:
MAXNLEN DB 20 ; макс. длина имени
NAMELEN DB ? ; число введенных символов
NAMEFLD DB 20 DUP(' '),'$' ;имя и ограничитель для вывода на экран
И есть Демон(функшн):
D10INPT PROC NEAR
MOV AH,0AN ;Функция ввода
LEA DX,NAMEPAR
INT 21H
RET
Далее по коду есть еще один демон:
E10CODE PROC NEAR
MOV BH,00 ; (в книге похоже опечатка) Замена символа Return (0D)
MOV BL,NAMELEN ; на зв. сигнал (07)
1. MOV NAMEFLD[BX],07
2. MOV NAMEFLD[BX+1],'$' ;Установить ограничитель
RET
Говорится что при наборе максимумума возникает звук, ума неприложу как? Медитировал. Пил. Все без толку. Кроме этого не пойму что означает адреса в строках 1 и 2.


Дата: Ноя 15, 2003 00:30:42

EvilsInterrupt

Потому не понял, что методика у тебя неверная!
Скомпилируй, слинкуй. И посмотри, во что преобразуется конструкция. Всего делов.
Если хочется больше теории, тогда знай, что то, с чем ты столкнулся, называется "Indexed Addressing Mode", где в качестве индекса может использоваться bx/bp/si/di.
Твое выражение MOV NAMEFLD[BX],07 можно заменить на
mov [BX+NAMEFLD],07. Думаю, так понятнее. А почему там стоит именно символьное имя, а не адрес - ну, должен уже и сам понимать.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.105