Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bits 16
- section .text
- org 7c00h
- start: mov ax, 0b800h
- mov ds, ax
- mov ax, 0
- mov es, ax
- mov bx, 80*25*2
- mov ax, 0200h
- clear: mov [bx], ax
- sub bx, 2
- jnz clear
- mov cx,msglen
- mov bx,0
- mov bp,msg
- mov ah,02h
- .msgprnt:
- mov al,[bp]
- inc bp
- mov [bx],ax
- add bx,2
- loop .msgprnt
- mov dx, 1
- mov bp, 7c00h
- looout:
- mov bx, dx
- mov ax,160
- mul bl
- mov bx, ax
- mov ax, dx
- dec ax
- shl ax,4
- call printax
- mov byte [bx],':'
- add bx, 4
- mov cx,8
- looin: mov ax, [es:bp]
- call printax
- add bx,2
- add bp, 2
- mov al, [es:bp]
- loop looin
- inc dx
- cmp dx,24
- jb looout
- shr bx,1
- mov dx, 0x03d4
- mov al, 0x0f
- out dx, al
- inc dl
- mov al, bl
- out dx, al
- dec dl
- mov al, 0x0e
- out dx, al
- inc dl
- mov al, bh
- out dx, al
- .hlt
- hlt
- jmp .hlt
- printax:
- push cx
- push si
- mov cx, 4
- mov si,ax
- .prloop:
- push cx
- .shrloop:
- dec cx
- jz .shrend
- shr ax,4
- jmp .shrloop
- .shrend:
- pop cx
- and al,0fh
- cmp al,10
- jae .hex
- add al, '0'
- jmp .continue
- .hex: add al, 'A'-10
- .continue:
- mov ah,02h
- mov [bx],ax
- add bx,2
- mov ax,si
- loop .prloop
- pop si
- pop cx
- ret
- msg: db "Print itself and halt:"
- msglen equ $-msg
- size equ $-start
- times 510-size db 0
- dw 0aa55h
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement