PDA

View Full Version : سوال: روتین بایوس



Yanehsar
شنبه 23 اردیبهشت 1391, 19:27 عصر
سلام منظور از روتین بایوس در زبان اسمبلی چیست؟!؟

pe32_64
شنبه 23 اردیبهشت 1391, 20:25 عصر
همون وقفه های بایوس en.wikipedia.org/wiki/BIOS_interrupt_call (http://barnamenevis.org/en.wikipedia.org/wiki/BIOS_interrupt_call)

Yanehsar
شنبه 23 اردیبهشت 1391, 23:09 عصر
همون وقفه های بایوس en.wikipedia.org/wiki/BIOS_interrupt_call (http://barnamenevis.org/en.wikipedia.org/wiki/BIOS_interrupt_call)
چه طوری میشه کاری کرد که مکان نما یا اشاره گر موس رو با یک کاراکتر خاص نمایش بدیم به صورتی که رنگ اشاره گر و رنگ زمینه مختلف باشه؟میشه نمونه کد برام بذارید
ممنون میشم

Yanehsar
یک شنبه 24 اردیبهشت 1391, 21:55 عصر
کسی نمیتونه کمکم کنه؟

ssbostan
دوشنبه 25 اردیبهشت 1391, 00:25 صبح
سلام؛
در مد گرافيكي شما اين امكان رو داريد كه به مكان نما حالت گرافيكي بديد و در شكل اون تغيير ايجاد كنيد.
براي اين كار در داس يك وقفه وجود داره كه اين كار رو براي شما انجام ميده و اطلاعات كامل رو از لينك زير ميتونيد ببينيد.
http://www.ctyme.com/intr/rb-5965.htm

اما در حالت متن براي تغيير رنگ مكان نما قبل از آماده سازي موس بايد چند قسمت از حافظه رو دستكاري كنيد و رنگ مورد نظر رو بديد.
اين قسمت رو نگاه ميكنم و آدرس دقيق رو در ميارم و بهتون ميگم.

موفق باشيد.

Yanehsar
دوشنبه 25 اردیبهشت 1391, 10:19 صبح
سلام؛
در مد گرافيكي شما اين امكان رو داريد كه به مكان نما حالت گرافيكي بديد و در شكل اون تغيير ايجاد كنيد.
براي اين كار در داس يك وقفه وجود داره كه اين كار رو براي شما انجام ميده و اطلاعات كامل رو از لينك زير ميتونيد ببينيد.
http://www.ctyme.com/intr/rb-5965.htm

اما در حالت متن براي تغيير رنگ مكان نما قبل از آماده سازي موس بايد چند قسمت از حافظه رو دستكاري كنيد و رنگ مورد نظر رو بديد.
اين قسمت رو نگاه ميكنم و آدرس دقيق رو در ميارم و بهتون ميگم.

موفق باشيد.
سلام ممنون میشم کمکم کنید خیلی واجبه برام

xman_1365_x
سه شنبه 26 اردیبهشت 1391, 19:56 عصر
Mouse Function Calls (http://physinfo.ulb.ac.be/cit_courseware/CPROGRAM/advcw3.htm#mouse)

xman_1365_x
چهارشنبه 27 اردیبهشت 1391, 02:54 صبح
یک مثالم میزنم که متوجه بشین و خودتون باقی تابع های وقفه 33 رو چک کنید




data segment

pkey db "press any key...$"

MouseShape DB 0FFh,03Fh,0FFh,01Fh,0FFh,00Fh,0FFh,007h ; Default mouse
DB 0FFh,003h,0FFh,001h,0FFh,000h,07Fh,000h ; cursor shape

;square
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; data
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh

;Default

;DB 03Fh,000h,07Fh,000h,0FFh,00Fh,0FFh,0BFh ; data
;DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
;DB 000h,000h,000h,040h,000h,060h,000h,070h
;DB 000h,078h,000h,07Ch,000h,07Eh,000h,07Fh
;DB 080h,07Fh,000h,070h,000h,040h,000h,000h
;DB 000h,000h,000h,000h,000h,000h,000h,000h

ends

stack segment stack
dw 128 dup(0)
ends

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



mov ax,13h
int 10h



mov bx,0 ;hchs
mov cx,0 ;vchs
mov dx,offset MouseShape
mov ax,9
int 33h



mov ax,1
int 33h


lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx

l1:

jmp l1

ends

end start ; set entry point and stop the assembler.


میتونید همین برنامه هم با تغییر دیتا به صورت حرفی که میخواین در بیارین ، ضمنا به قسمت دیتا توجه کنید که دیفالت با حالت دیگه چه فرقی میکنه
موفق باشید

xman_1365_x
چهارشنبه 27 اردیبهشت 1391, 03:45 صبح
فکر کنم کد هگز گذاشتم براتون سخت باشه تبدیل دیتا به حرف برای همین به صورت باینری هم قرار میدم
ایکس من کرسر:چشمک:


data segment

pkey db "press any key...$"

MouseShape dw 0000011111100000b
dw 0000011111100000b
dw 0000011111100000b
dw 0000011111100000b
;
dw 1111000110001111b
dw 1111100110011111b
dw 1111110000111111b
dw 1111111001111111b
;
dw 1111111001111111b
dw 1111110000111111b
dw 1111100110011111b
dw 1111000110001111b
;
dw 0000011111100000b
dw 0000011111100000b
dw 0000011111100000b
dw 0000011111100000b
;
; cursor mask ---
dw 1111000000001111b
dw 1111000000001111b
dw 1111000000001111b
dw 0000110000110000b
;
dw 0000110000110000b
dw 0000011001100000b
dw 0000011001100000b
dw 0000001111000000b
;
dw 0000001111000000b
dw 0000000110000000b
dw 0000011011000000b
dw 0000110000110000b
;
dw 0000110000110000b
dw 1111000000001111b
dw 1111000000001111b
dw 1111000000001111b




MouseShape1 dw 0011111111111111b
dw 0001111111111111b
dw 0000111111111111b
dw 0000011111111111b
;
dw 0000001111111111b
dw 0000000111111111b
dw 0000000011111111b
dw 0000000001111111b
;
dw 0000000000111111b
dw 0000000111111111b
dw 0001000011111111b
dw 0011000011111111b
;
dw 1111100001111111b
dw 1111100001111111b
dw 1111110000111111b
dw 1111111111111111b
;
; cursor mask ---
dw 0000000000000000b
dw 0100000000000000b
dw 0110000000000000b
dw 0111000000000000b
;
dw 0111100000000000b
dw 0111110000000000b
dw 0111111000000000b
dw 0111111100000000b
;
dw 0111111110000000b
dw 0111111111000000b
dw 0111110000000000b
dw 0100011000000000b
;
dw 0000011000000000b
dw 0000001100000000b
dw 0000001100000000b
dw 0000000000000000b

MouseShape2 DB 0FFh,03Fh,0FFh,01Fh,0FFh,00Fh,0FFh,007h ; Default mouse

DB 0FFh,003h,0FFh,001h,0FFh,000h,07Fh,000h ; cursor shape

DB 03Fh,000h,07Fh,000h,0FFh,00Fh,0FFh,0BFh ; data

DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh

DB 000h,000h,000h,040h,000h,060h,000h,070h

DB 000h,078h,000h,07Ch,000h,07Eh,000h,07Fh

DB 080h,07Fh,000h,070h,000h,040h,000h,000h

DB 000h,000h,000h,000h,000h,000h,000h,000h

ends



stack segment stack

dw 128 dup(0)

ends



code segment

start:

; set segment registers:

mov ax, data

mov ds, ax

mov es, ax


mov ax,13h

int 10h



mov bx,0 ;hchs

mov cx,0 ;vchs

mov dx,offset MouseShape

mov ax,9

int 33h



mov ax,1

int 33h



lea dx, pkey

mov ah, 9

int 21h ; output string at ds:dx



l1:

jmp l1


ends


end start ; set entry point and stop the assembler.