leila_safa
شنبه 22 مهر 1385, 01:26 صبح
من برای آز سیستم عامل یه پروژه دارم که باید یه دیسکت startupدرست کنم که توش یه برنامه باشه که یه سری کارا رو انجام بده. اول اشکالم:عصبانی++: :عصبانی++: می پرسم بعد سوالامو رو میگم.
اشکالم اینه که من برای نوشتن کلمه file می خوام ازah=0eh و int 10h استفاده کنم که حرف به حرف بنویسه برام. اما مشکلم اینه که برنامه من توی داس خوب ران می شه و جواب درست میده یعنی بهمث رو می نویسه، اما وقتی رو دیسکت می زنم (از آدرس 7c00) و با vmware اجراش می کنم به جای کلمه file چهار تا فضای خالی میده.
اینم برنامم:
.model tiny
.stack 64h
.data
file db 'file'
.code
org 7c00h
main proc far
; clear screen
mov ax,@data
mov ds,ax
mov ax,0
mov ah,06h
mov al,00
mov bh,07h
mov ch,00
mov cl,00
mov dh,18h
mov dl,47h
int 10h
; write menu to page
mov cx,04
mov di,0
lea di,file
mov ah,0eh
mov bh,00h
mov bl,07h
t1 :
mov al,[di]
int 10h
inc di
loop t1
;MOV AX,10H;
;INT 16H;
main endp
end main
اینم وقتی که روی دیسکت می زنم:
C:\TASM>tasm text.asm
Turbo Assembler Version 4.1 Copyright (c) 1988, 1996 Borland International
Assembling file: text.asm
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 418k
C:\TASM>tlink text.obj
Turbo Link Version 7.1.30.1. Copyright (c) 1987, 1996 Borland International
C:\TASM>debug text.exe
-r cx
CX 7D38
:
-w cs:7c00 0 0 38
حالا بگین اشکال کارم کجاست؟
سوالامم اینن:
1_من یه لیستی از وقفه های بایوس (فقط بایوس ) می خوام.
2_ ایا وقفه های بایوس با وقفه های داس فرق میکنن؟
اشکالم اینه که من برای نوشتن کلمه file می خوام ازah=0eh و int 10h استفاده کنم که حرف به حرف بنویسه برام. اما مشکلم اینه که برنامه من توی داس خوب ران می شه و جواب درست میده یعنی بهمث رو می نویسه، اما وقتی رو دیسکت می زنم (از آدرس 7c00) و با vmware اجراش می کنم به جای کلمه file چهار تا فضای خالی میده.
اینم برنامم:
.model tiny
.stack 64h
.data
file db 'file'
.code
org 7c00h
main proc far
; clear screen
mov ax,@data
mov ds,ax
mov ax,0
mov ah,06h
mov al,00
mov bh,07h
mov ch,00
mov cl,00
mov dh,18h
mov dl,47h
int 10h
; write menu to page
mov cx,04
mov di,0
lea di,file
mov ah,0eh
mov bh,00h
mov bl,07h
t1 :
mov al,[di]
int 10h
inc di
loop t1
;MOV AX,10H;
;INT 16H;
main endp
end main
اینم وقتی که روی دیسکت می زنم:
C:\TASM>tasm text.asm
Turbo Assembler Version 4.1 Copyright (c) 1988, 1996 Borland International
Assembling file: text.asm
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 418k
C:\TASM>tlink text.obj
Turbo Link Version 7.1.30.1. Copyright (c) 1987, 1996 Borland International
C:\TASM>debug text.exe
-r cx
CX 7D38
:
-w cs:7c00 0 0 38
حالا بگین اشکال کارم کجاست؟
سوالامم اینن:
1_من یه لیستی از وقفه های بایوس (فقط بایوس ) می خوام.
2_ ایا وقفه های بایوس با وقفه های داس فرق میکنن؟