PDA

View Full Version : تبدیل وقفه های داس به بایوس



alishegheh
جمعه 21 آبان 1395, 13:18 عصر
با سلام و خسته نباشید خدمت دوستان
من میخواستم این کد رو به حالتی تبدیل کنم که بتوان بر روی فلش یا فلاپی یا سی دی زد و بوت کرد
data segment
; add your data here!
;pkey dw 10,20,30 .

pkey db "First Name $"
pkey2 db "Last Name $"
pkey3 db "Major $"
pkey4 db "BirthDay $"

strlist label byte
max db 10
len db ?
buffer db 10 dup("$"),'$'


strlist2 label byte
max2 db 10
len2 db ?
buffer2 db 10 dup("$"),'$'

strlist3 label byte
max3 db 10
len3 db ?
buffer3 db 10 dup("$"),'$'

strlist4 label byte
max4 db 10
len4 db ?
buffer4 db 10 dup("$"),'$'

ends

stack segment
dw 128 dup(0)
ends

code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax

;sabz
mov ah,6
mov cl,10
mov ch,3
mov dl,70
mov dh,22
mov al,50
mov bh,31h
int 10h

;banafsh
mov ah,6
mov cl,11
mov ch,5
mov dl,41
mov dh,21
mov al,50
mov bh,51h
int 10h


;qermez
mov ah,6
mov cl,10
mov ch,4
mov dl,40
mov dh,20
mov al,50
mov bh,41h
int 10h


;Textbox1
mov ah,6
mov cl,21
mov ch,4
mov dl,30
mov dh,5
mov al,50
mov bh,79h
int 10h


;Textbox2
mov ah,6
mov cl,21
mov ch,7
mov dl,30
mov dh,8
mov al,50
mov bh,79h
int 10h

;Textbox3
mov ah,6
mov cl,21
mov ch,10
mov dl,30
mov dh,11
mov al,50
mov bh,79h
int 10h

;Textbox4
mov ah,6
mov cl,21
mov ch,13
mov dl,30
mov dh,14
mov al,50
mov bh,79h
int 10h

mov ah,2
mov dl,10
mov dh,5
mov bh,0 ;page number
int 10h

lea dx,pkey
mov ah,9
int 21h

lea dx,strlist
mov ah,10
int 21h


mov ah,2
mov dl,10
mov dh,8
mov bh,0 ;page number
int 10h

lea dx,pkey2
mov ah,9
int 21h

;new
mov ah,2
mov dl,21
mov dh,8
mov bh,0 ;page number
int 10h

lea dx,strlist2
mov ah,10
int 21h

mov ah,2
mov dl,10
mov dh,11
mov bh,0 ;page number
int 10h

lea dx,pkey3
mov ah,9
int 21h

;new3
mov ah,2
mov dl,21
mov dh,11
mov bh,0 ;page number
int 10h

lea dx,strlist3
mov ah,10
int 21h

mov ah,2
mov dl,10
mov dh,14
mov bh,0 ;page number
int 10h

lea dx,pkey4
mov ah,9
int 21h

;new4
mov ah,2
mov dl,21
mov dh,14
mov bh,0 ;page number
int 10h

lea dx,strlist4
mov ah,10
int 21h

;ClearScreen
mov ah,6
mov cl,0
mov ch,0
mov dl,80
mov dh,25
mov al,50
mov bh,71h
int 10h

mov ah,2
mov dl,0
mov dh,0
mov bh, 0
int 10h


lea dx,pkey
mov ah,9
int 21h

mov ah,9
lea dx,buffer
int 21h


mov ah,2
mov dl,5
mov dh,1
mov bh, 0
int 10h

lea dx,pkey2
mov ah,9
int 21h


mov ah,9
lea dx,buffer2
int 21h


mov ah,2
mov dl,5
mov dh,2
mov bh, 0
int 10h


lea dx,pkey3
mov ah,9
int 21h

mov ah,9
lea dx,buffer3
int 21h


mov ah,2
mov dl,5
mov dh,3
mov bh, 0
int 10h

lea dx,pkey4
mov ah,9
int 21h


mov ah,9
lea dx,buffer4
int 21h

ends

end start ; set entry point and stop the assembler.

m.j_banitaba
سه شنبه 25 آبان 1395, 07:15 صبح
سلام.
اینکه میگید چطور میشه اینو به اون تبدیل کرد دو تا راه داره:


۱- نوشتن وقفه ۲۱ به صورت شخصی

۲- نوشتن توابع جای گزین در برنامه

اما اگر بگید هدف از این کار چیه شاید را کوتاه تری هم داشته باشه؟؟!!؟؟