I have an important assignment to do but I am new to assembly programming and I understand some basics but I don't exactly know how to put together some of these codes. Please help? I really am trying. It would be appreciated if you could fill in some of the blanks for me.
I have to : Draw the multi-page table of ascii characters, showing for each character value (0..255) the character and its decimal and hex values (optional: octal + binary), using direct screen output (seg B800). Use lines to format the table. Make the output look good; use color as needed.
This is all I have so far:
org 100h
; jump over data string
jmp start
; data string:
msg1 db 'ascii table pg 1', 0 ; I dont know how I could input the data to be used for
msg2 db 'ascii table pg 2', 0 ; the ascii table nor how to seperate them to three pages
msg3 db 'ascii table pg 3', 0
start:
; set video mode
mov ax, 0300h
int 10h
; cancel blinking and enable all 16 colors
mov ax, 1003h
mov bx, 0
int 10h
; set segment register
mov ax, 0b800h
mov ds, ax
; color the screen ;How to put background and text color?
mov ax, 0600h
mov ch, 1
mov cl, 1
mov dh, 24
mov dl, 78
mov bh, 100b
int 10h
; how to create table with lines?
; how to wait for key response and turn to page n ?
save: ; he gave us this save code with a loop but I don't know
; what to use it for
mov cx, 80*25
mov ax, 0b800h
mov es, ax
sub bx, bx
L: mov ax, es: [bx]
mov word ptr [bx], ax
add bx, 2
loop L
mov ah, 1 ; I believe this is wait for key response and make
int 21h ; the input as "r"
; I want to create if else statements here but dont know how with asm
I would want to create :
if r = "+"
if 0 < n < 3 ; I'm guessing it might turn out as 3 pages
clear screen
n = n+1
open page n
else
print "already at end of table"
if r = "-"
if 1 < n < 4
clear screen
n = n-1
open page n
else
print "already at beginning of table"
if r = esc
clear screen
jmp ret
else
print "incorrect command : next pg + , prev pg - , quit ESC"
; exit and return control to OS
ret
end