BOOK: IBM PC ассемблер Программирование: Пятое издание Питера АбельКак это работает? Ограничитель и расширенной адресации в моей программе
Программы стр.143: Прием и отображение имен
В
movzx
наборахBX
с числом символы, которые были напечатаны. Вmov,[bx]
действует как индексный регистр для облегчения расширенной адресации.MOV
объединяет длину вBX
с адресомKBNAME
и перемещает07H
на расчетный адрес. для однойнадцатой из 11, инструкция вставляет07H
вKBNAME+11
(заменяя символ Enter) после имени. Инструкция по c10centermov kbname[bx+1],'$'
вставляет
$
разделитель после07H
так, чтоint 21h
функция09H
может отображать имя и звук динамик1 c10center proc near 2 movzx bx,actulen 3 mov kbname[bx],07 4 mov kbname[bx+1],'$' 5 mov dl,actulen 6 shr dl,1 7 neg dl 8 add dl,40 9 mov dh,12 10 call q20cursor 11 ret 12 c10center endp
мой вопрос, что делает ,07
в строке 3 делать?
также я смущен, как работает линия 4? Ограничитель?
Если вы просто пытаетесь научиться asm, изучение системных вызовов DOS в то же время усложняет работу IMO. Сначала вы можете изучить 32 или 64 бит, так что вы можете писать функции, которые вы можете вызывать из обычных программ. (См. [X86 tag wiki] (http://stackoverflow.com/tags/x86/info), есть несколько обучающих программ и пара ссылок с предложениями об обучении asm.). –