· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Про макросы и стековый фрейм!

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Май 10, 2004 12:40:43

	mov ax,0201h
	lea bx,buffer
	mov cx,0001h
	mov dx,0003h - номера винтов начинаются с 80h
	int 13h	


Дата: Май 10, 2004 13:41:38

Ух ты!
Значит:
A-80H,B-81H,C-82H правильно?
И где инфу взять, а то я это по Абелю и по Джордейну, а про 80h впервые слышу!


Дата: Май 10, 2004 14:13:33

Используя коды:
mov al,0
lea bx,buffer
mov cx,1
mov dx,0
int 25h
Установил что 0-А,1-B по логике должно 2-С, а нет
он мне cf=1,ax=0001.
Дискету также прочитал с помощью:
mov es,cs ; т.к. com-file
mov ax,0201h
lea bx,buffer
mov cx,0001h
mov dx,0080h
int 13h
Хотел заставить выругаться на отсутствие B сделав:
mov dx,0081h
Но, он ругаться не стал,сказав мне cf=1,ax=0101
И даже при dx=0001 ругаться не стал, хотя Джордейн
уверяет, что это B!

Чеза хрень где винчестер и как найти нирвану?


Дата: Май 10, 2004 14:32:30 · Поправил: Black_mirror

EvilsInterrupt
A-80H,B-81H,C-82H правильно? - неправильно
первый дисковод - 0
второй дисковод - 1
первый винт - 80h
второй винт - 81h
третий винт - 82h
четвёртый винт - 83h
А как винты на логические диски разбиты, биосу вообще фиолетово. Он видит физические а не логические диски.
А что касается int25/26 для дисков(вот здесь уже диски логические) больше 32M в ax номер диска, в cx должно быть -1, а ds:bx должен указывать на такую структурку:
номер_сектора dd ?
число_секторов dw ?
адрес_буфера dd ?

Сам не проверял, но так написано у Фаронова в "Turbo Pascal 7.0, практика программирования". Еще там написано что int25/26 разрушают ds,bp и не вытаскивают регистр флагов при возврате.


Дата: Май 10, 2004 18:20:58

А как тогда флопик и сидюк?


Дата: Май 10, 2004 19:09:16

Black Mirror насколько я понимаю, с таким
кодом у меня прочтется диск C:
mov ax,0201h
lea bx,param1
mov cx,0001h
mov dx,0080h
int 13h
Но если бы я указал mov dx,0000h то это был
бы диск А верно я тебя понял?

Теперь так: у меня в системе есть флопи, винт
разбитый на два логических и CD-rom.
Значит:
А-00, 80-С, 81-CD-rom все ли я понял и как
мне теперь прочесть cd и второй логический?


Дата: Май 10, 2004 20:37:54

Кому не лень может глянет на утилиту в аттаче, может поможет заоптимизировать или предложит толковые идеи

А ежели Володя иль Quantum глянут и чо - нить брякнут на мой код, ето ваще будет Кул, но и остальным буду рад, и даже очень!

_1744814300__Evil`s Interrupt.rar


Дата: Май 11, 2004 07:22:47

EvilsInterrupt
Например
two_space proc near
	mov word ptr[di],2020h
	inc di
	inc di
	ret
two_space endp

asc2_opcode proc near
	push cx
	mov cx,16d
opc:
	mov al,[si]
	cmp al,0
        jz  short o1
	cmp al,08h
        jb  short o8
	cmp al,0dh
        jbe short o1
	cmp al,1bh
	jnz short o8
o1:
	mov al,2dh
o8:
	mov [di],al
	inc si
	inc di
	loop opc
        mov word ptr[di],0a0dh
	inc di
	inc di
	pop cx
	ret
asc2_opcode endp

inc_number_para proc near
	add number_para+2,16d
	adc number_para,0
	ret
inc_number_para endp


Дата: Май 11, 2004 22:33:09

q_q
спасибо!

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.075