说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

急急急,快来帮忙,谢谢

编辑:说三道四文库 发布时间:2018-05-23 06:54
HTML文档下载 WORD文档下载 PDF文档下载
1。读出软盘0面,0道,1扇区的内容,并显示。
2。扬声器发出声音,从低到高。
3。实现KV300的界面。
实现3个中的一个即可,要比较详细的代码,谢谢
; Absolute Disk Read:  GETSEC  ( uses BIOS interrupt 0x25 )
;
; Interfaces to Computer Innovations C-86 "c" compiler V1.32 (& later)
; See DOS 2.10 Technical Reference page 5-10, and Technical Reference
; page A-32.  This code was written by Mike Sirmans (05-25-84).
; --------------------------------------------------------------------
;       THIS ROUTINE IS POWERFUL. (AND AS SUCH, IS DANGEROUS IN THE WRONG
;       HANDS).  BE CAREFUL HOW YOU USE IT.  I ASSUME NO RESPONSIBILITY.
; --------------------------------------------------------------------
;
; Synopsis: int getsec(drive,numsec,begsec,buffer)
; unsigned int drive; /* 0=A, 1=B, etc. */
; unsigned int numsec; /* Number of sectors to read */
; unsigned int begsec; /* Beginning logical sector */
; char *buffer; /* Transfer address */
;
; Function: The number of sectors specified are transferred 
; between the given drive and the transfer address. 
; LOGICAL SECTOR NUMBERS are obtained by numbering
; each sector sequentially starting from track 0, head 0,
; sector 1 (logical sector 0) and continuing along the
; same head, then to the next head until the last sector
; on the last head of the track is counted.  Thus, 
; logical sector 1 is track 0, head 0, sector 2,
; logical sector 2 is track 0, head 0, sector 3,  & so on.
;
; Returns: NULL if the operation is successful.
; otherwise, error codes are as follows:
;
; hex 80 Attachment failed to respond.
; hex 40 SEEK operation failed.
; hex 20 Controller failure.
; hex 10  Bad CRC on diskette read.
; hex 08 DMA overrun on operation.
; hex 04 Requested sector not found.
; hex 03 Write attempt on write-protected diskette.
; hex 02 Address mark not found.
; hex FF Unspecified (error other than those above).
;
code segment byte public ;segment registers remain intact
assume cs:code ;all other registers will be destroyed
public getsec

getsec: push bp ;save old frame pointer
mov bp,sp ;get new frame pointer
mov ax,4[bp] ;put drive number into AL
xor ah,ah
mov cx,6[bp] ;number of sectors to fetch
mov dx,8[bp] ;logical record number of 1st sector
mov     bx,10[bp] ;pointer to transfer address
int 25h ;BIOS call
jc error ;error has occurred if carry flag = 1
mov al,00H ;NULL to indicate sucessful completion
jmp done
error: cmp al,00H ;detect unspecified error code 00H
jne done ;...change to 0FFh if found to 
mov al,0FFH ;...differentiate it from success code
done: xor ah,ah ;return AL only
popf ;remove flags int 0x25 left on stack
pop bp ;restore original frame pointer
ret ;all done

code ends
end                                                                                                                                                                                                                                                                                                                                                                                 
可不可以写出直接可以运行的代码
一定会给分的
KV300的界面,字符的?丑
x:\>debug
-a100
-xxxx:0100 mov ax,0201
-xxxx:0103 mov bx,0400
-xxxx:0106 mov cx,0001
-xxxx:0109 mov dx,0000
-xxxx:010c int 13
-xxxx:010e int 3
-xxxx:010f
-g=100
-d0400
....
-d
直到看到55aa
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘