⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 floppy-asm.s

📁 用于汇编领域的,运用于OS的MAIN函数.基于硬件基础的源代码
💻 S
字号:
.text.global FloppyMotorOn.global FloppyMotorOff.global initializeDMA.global initializeDMAWrite.global FloppyCode.global ResultFhaseFloppyMotorOn:   pushl %edx   pushl %eax   movb $0x1c, %al   movw $0x3f2, %dx   outb %al, %dx   popl %eax   popl %edx   retFloppyMotorOff:   pushl %edx   pushl %eax   movw $0x3f2, %dx   xorb %al, %al   outb %al, %dx   popl %eax   popl %edx   retinitializeDMA:   pushl %ebp   movl %esp, %ebp   pushl %eax   movb $0x14, %al   outb %al, $0x08  # deactivate DMA   movb $0x01, %al   outb %al, $0x0c  # reset flip-flop   movb $0x56, %al   outb %al, $0x0b  # mode register   movb $0x01, %al   outb %al, $0x0c  # reset flip-flop   movl 0x0c(%ebp), %eax  # offset   outb %al, $0x04  # low byte   movb %ah, %al   outb %al, $0x04  # high byte   movl 0x08(%ebp), %eax # page   outb %al, $0x81   movb $0x01, %al   outb %al, $0x0c  # reset flip-flop   movb $0xff, %al   outb %al, $0x05  # low byte of counter (511)   movb $0x01, %al   outb %al, $0x05  # high byte of counter   movb $0x02, %al   outb %al, $0x0a  # unmask ch2   movb $0x10, %al   outb %al, $0x08  # activate DMA 1   popl %eax   movl %ebp, %esp   popl %ebp   retinitializeDMAWrite:   pushl %ebp   movl %esp, %ebp   pushl %eax   movb $0x14, %al   outb %al, $0x08  # deactivate DMA   movb $0x01, %al   outb %al, $0x0c  # reset flip-flop   movb $0x5a, %al  # read from mem to write to disk   outb %al, $0x0b  # mode register   movb $0x01, %al   outb %al, $0x0c  # reset flip-flop   movl 0x0c(%ebp), %eax  # offset   outb %al, $0x04  # low byte   movb %ah, %al   outb %al, $0x04  # high byte   movl 0x08(%ebp), %eax # page   outb %al, $0x81   movb $0x01, %al   outb %al, $0x0c  # reset flip-flop   movb $0xff, %al   outb %al, $0x05  # low byte of counter (511)   movb $0x01, %al   outb %al, $0x05  # high byte of counter   movb $0x02, %al   outb %al, $0x0a  # unmask ch2   movb $0x10, %al   outb %al, $0x08  # activate DMA 1   popl %eax   movl %ebp, %esp   popl %ebp   retResultFhase:   pushl %edx   movw $0x3f5, %dx   inb %dx, %al   popl %edx   ret

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -