JMP start
srt db 'Hello, World!'
start:
MOV AX, 0B800h
MOV ES, AX
mov cx, 13
mov di, 52h
XOR SI, SI
c: MOV al, srt[si]
mov ES:[di], al
inc si
add di, 2
loop c
mov cx, 13
mov di, 53h
mov bl, 01h
b: mov es:[di], bl
inc bl
add di, 2
loop b
HLT
JMP start
srt db 'Hello, World!'
start:
MOV AX, 0B800h
MOV ES, AX
mov cx, 13
mov di, 52h
XOR SI, SI
c: MOV al, srt[si] c – метка начала цикла,копирует в операнд al операнд srt с адресом si
mov ES:[di], al копирует в операнд ES с адресом di операнд al
inc si добавляем 1 к si
add di, 2 выполняют сложение
loop c переход на строку С до тех пор пока счетчик не будет равен 0
mov cx, 13 копирует в операнд сx чмсло 13
mov di, 53h копирует в операнд di операнд 53h
mov bl, 01h копирует в операнд bl операнд 01h
b: mov es:[di], bl b-метка начала цикла копирует в операнд ES с адресом di операнд bl
inc bl добавляем 1 к bl
add di, 2 выполняют сложение
loop b переход на строку GO (до тех пор пока счетчик не будет равен 0
HLT конец программы
JMP start;резервируем память для данных
srt db 'Hello, World!';выводимая строка
start:;начало программы
;0B800h - сегментный адрес текстового режима, каждая позиция кратная 2-м: <символ>(байт) + <атрибут>(байт)=0<FON>(3 bit)+<color>(4 bit)
MOV AX,0B800h;будем выводить информацию, прямой записью в видеобуфер
MOV ES,AX;устанавливаем сегментный регистр
;Устанавливаем параметры вывода символов
mov cx,13;кол-во выводимых символов
mov di,52h;52/2 позиция вывода: 26-ой столбец первой строки
XOR SI,SI;позиция в выводимой строке
;читаем выводимый символ с srt+si
c: MOV al,srt[si];c – метка начала цикла,копирует в операнд al операнд srt с адресом si
;записываем в видеобуфер прочитанный символ в очередную позицию на экране
mov ES:[di],al;копирует в операнд ES с адресом di операнд al
;переходим к следующей позиции в строке
inc si;добавляем 1 к si
;переходим с следующему символу на экране
add di,2;выполняют сложение
;пока СХ больще нуля повторяем цикл
loop c;переход на строку С до тех пор пока счетчик не будет равен 0
;Устанавливаем параметры вывода аттрибутов
;кол-во выводимых аттрибутов
mov cx,13;копирует в операнд сx чмсло 13
;адрес в видеобуфере для аттриюута
mov di,53h;копирует в операнд di операнд 53h
;аттрибут 0<000(фон черный)><0001(цвет синий)>
mov bl,01h;копирует в операнд bl операнд 01h
;записываем аттрибут в очередную позицию на экране
b: mov es:[di],bl;b-метка начала цикла копирует в операнд ES с адресом di операнд bl
;изменяем аттрибут синий, зеленый, желтый, .. белый
inc bl;добавляем 1 к bl
;переходим к следующей позиции аттрибута на экране
add di,2;выполняют сложение
;повторяем цикл
loop b;переход на строку GO (до тех пор пока счетчик не будет равен 0
;остановка программы
HLT;конец программы
model tiny
.code
org 100h
begin:
JMP start
dbstr db 'Hello, World!'
start:
mov ax,83h
int 10h
MOV AX, 0B800h
MOV ES, AX
mov cx, 13
lea si,dbstr
xor di,di
mov ah,1
@@01: lodsb
stosw
inc ah
loop @@01
ret
end begin
model tiny
.code
org 100h
begin:
JMP start
dbsrt db 'Hello, World!'
start:
mov ax,83h
int 10h
MOV AX, 0B800h
MOV ES, AX
mov cx, 13
mov di,0; 52h
XOR SI,SI
c: MOV al, dbsrt[si]; c – метка начала цикла,копирует в операнд al операнд srt с адресом si
mov ES:[di], al; копирует в операнд ES с адресом di операнд al
inc si; добавляем 1 к si
add di, 2; выполняют сложение
loop c; переход на строку С до тех пор пока счетчик не будет равен 0
mov cx, 13; копирует в операнд сx чмсло 13
mov di,1; 53h; копирует в операнд di операнд 53h
mov bl, 01h; копирует в операнд bl операнд 01h
b: mov es:[di], bl; b-метка начала цикла копирует в операнд ES с адресом di операнд bl
inc bl; добавляем 1 к bl
add di, 2; выполняют сложение
loop b; переход на строку GO (до тех пор пока счетчик не будет равен 0
ret
end begin
HLT конец программы
mov ax,83h
int 10h
c: MOV al,srt[si]
inc si
8A 84 01 03 c: MOV al, dbsrt[si]
46 inc si
mov ES:[di], al
add di, 2
26: 88 05 mov ES:[di], al
83 C7 02 add di, 2
AC @@01: lodsb
AB stosw
FE C4 inc ah
inc bl
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.