Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model tiny
- .code
- .386
- org 100h
- start:
- ;вычисление начальной позиции таблицы
- mov ax, 40h
- mov es, ax
- mov ax, es:[049h]
- mov dx, 0a4h
- cmp ah, 80
- jne sorok
- mov dx, 16ch
- sorok:
- mov bl, ah
- push bx ;количество столбцов
- ;закраска всего экрана
- mov bh, 00101111b
- call zakraska
- add di, dx
- mov si, offset kek
- pop dx
- call risovalka ;1 строка
- mov al, 186
- stosw
- scasw
- mov al, 179
- stosw
- mov al, 48
- mov cl, 16
- cifr:
- stosw
- scasw
- inc ax
- cmp al, 58
- jne kk
- mov al, 65
- kk:
- loop cifr
- mov si, [offset kek + 4] ;3 строка
- lodsb
- stosw
- call perenos_stroki
- call risovalka
- ;вывод таблицы
- mov bl, 48
- call oool
- xor al, al
- cycle:
- stosw
- inc ax
- scasw
- test al, 0fh
- jnz endd
- push ax
- mov al, 186
- stosw
- call perenos_stroki
- cmp bl, 58
- jne kk2
- mov bl, 65
- kk2:
- call oool
- pop ax
- endd:
- cmp al, 255
- jne cycle
- scasw ;в конце остается 1 пробел и 1 правая стенка
- scasw
- mov al, 186
- stosw
- call perenos_stroki
- mov si, [offset kek + 10]
- call risovalka ;ласт строка
- ;ждем нажатия и очищаем экран
- xor ah, ah
- int 16h
- mov bh, 0000111b
- proc zakraska
- mov ax, 40h
- mov es, ax
- mov di, es:[04eh]
- push di
- mov ax, es:[049h]
- mov cx, 0b800h
- cmp al, 7
- jne m3
- mov cx, 0b000h
- m3:
- mov es, cx
- mov ah, bh
- mov al, 20h
- mov cx, 2000
- rep stosw
- pop di
- ret
- endp
- proc risovalka
- mov cl, 3
- lol:
- lodsb
- stosw
- loop lol
- dec si
- dec si
- lodsb
- mov cl, 32
- rep stosw
- lodsb
- lodsb
- stosw
- call perenos_stroki
- ret
- endp
- proc oool
- mov al, 186
- stosw
- mov al, bl
- stosw
- inc bx
- mov al, 179
- stosw
- ret
- endp
- proc perenos_stroki
- add di, dx
- add di, dx
- sub di, 72
- ret
- endp
- kek db 201, 205, 209, 187, 186, 199, 196, 197, 182, 186, 200, 205, 207, 188
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement