summaryrefslogtreecommitdiff
path: root/sem2/lab3/Dump.asm
diff options
context:
space:
mode:
Diffstat (limited to 'sem2/lab3/Dump.asm')
-rw-r--r--sem2/lab3/Dump.asm80
1 files changed, 80 insertions, 0 deletions
diff --git a/sem2/lab3/Dump.asm b/sem2/lab3/Dump.asm
new file mode 100644
index 0000000..93092f3
--- /dev/null
+++ b/sem2/lab3/Dump.asm
@@ -0,0 +1,80 @@
+;----------------------------------------
+OutChar macro char ;макрос вывода символа
+local l1,l2,loopCX
+push cx
+mov cx,2
+mov bh,char
+mov al,bh
+shr al,04
+
+loopCX:
+ cmp al,09h
+ jbe l1
+ add al,37h
+ jmp l2
+ l1:
+ add al,30h
+ l2:
+ mov es:[si],ax
+ mov al,bh
+ and al,00001111b
+ add si,2
+loop loopCX
+
+add di,01h
+pop cx
+endm
+;----------------------------------------
+ClrScr macro ;макрос очистки экрана
+push ax
+push bx
+push cx
+push dx
+mov ah,06h ;AH 06 (прокрутка)
+mov bh,07 ;Нормальный атрибут (черно/белый)
+mov cx,0000 ;Верхняя левая позиция
+mov dx,184Fh ;Нижняя правая позиция
+int 10h ;Передача управления в BIOS
+pop dx
+pop cx
+pop bx
+pop ax
+endm
+;----------------------------------------------
+
+.model small
+.stack 100h
+.data
+.code
+start:
+.486
+mov ax,@DATA
+mov ds,ax
+
+mov ax,0b800h
+mov es,ax ;в es начало видеопамяти
+mov si,0 ;смещение относительно начала видеопамяти
+mov di,0 ;счетчик байтов
+mov ah,7h ;атрибуты выводимых символов
+mov cx,offset exit
+sub cx,offset start ;адрес конца проги - адрес начала = ее размер!!!
+ClrScr
+
+CXne0:
+ mov al,cs:[di]
+ OutChar al
+loop Cxne0
+
+; input:
+; MOV dx,1900h
+; INT 10h
+
+ ; MOV ah,07h
+ ; INT 21h
+
+
+
+exit:
+mov ax,4C00h
+int 21h
+END start