第17章 使用BIOS进行键盘输入和磁盘读写
来源:互联网 发布:石金鑫知乎 编辑:程序博客网 时间:2024/06/05 16:48
assume cs:code
data segment
db 2879 dup (0)
data ends
code segment
;0:200h
rwstart:jmp short rw
table dw sub0,sub1
table1 db 4 dup (0)
rw: push ax
push bx
push cx
push dx
cmp ah,1
ja rwret
mov bl,ah
mov bh,0
add bx,bx ;计算功能号
push bx
mov bx,1440
mov dx,ax
mov dx,0
div bx
mov table1[0],al ;面号
mov ax,dx
mov dx,0
mov bx,18
div bx
mov table1[1],al ;磁道号
inc ah
mov table1[2],ah ;扇区号
mov al,1
mov ch,table1[1] ;磁道号
mov cl,table1[2] ;扇区号
mov dh,table1[0] ;面号
mov dl,0 ;软驱号 A
pop bx
call word ptr table[bx]
rwret: pop dx
pop cx
pop bx
pop ax
iret
sub0: push ax
mov ah,2
int 13h
pop ax
ret
sub1: push ax
mov ah,3
int 13h
pop ax
ret
rwe: nop
start: mov ax,cs
mov ds,ax
mov si,offset rwstart
mov ax,0
mov es,ax
mov di,200h
mov cx,offset rwe - offset rwstart
cld
rep movsb
mov ax,0
mov es,ax
mov word ptr es:[7ch*4],0h ;偏移地址从0开始
mov word ptr es:[7ch*4+2],20h ;使得程序被安装前后偏移地址一致
mov ax,4c00h
int 21h
code ends
end start
1-a
assume cs:code
data segment
dd 512 dup (0)
data ends
code segment
start:
mov ah,0
mov dx,0
mov bx,0b800h ;0c8f
mov es,bx
mov bx,40
int 7ch
mov ax,4c00h
int 21h
code ends
end start
1-b
assume cs:code
data segment
dd 256 dup (0)
data ends
code segment
start:
mov ah,1
mov dx,0
mov bx,data
mov es,bx
mov bx,4
int 7ch
mov ax,4c00h
int 21h
code ends
end start
- 第17章 使用BIOS进行键盘输入和磁盘读写
- 第17章 使用BIOS进行键盘输入和磁盘读写
- 第17章 使用BIOS进行键盘输入和磁盘读写 笔记2
- 汇编语言笔记17-使用BIOS进行键盘输入和磁盘读写
- 汇编语言--使用BIOS进行键盘输入和磁盘读写
- 汇编语言--使用BIOS进行键盘输入和磁盘读写
- 汇编第十七节-使用BIOS进行键盘输入和磁盘读写
- [汇编学习笔记][第十七章使用BIOS进行键盘输入和磁盘读写
- 汇编语言学习笔记第十七章 使用BIOS进行键盘输入和磁盘读写
- 王爽《汇编语言》(第二版) 学习笔记 (第十七章 使用BIOS进行键盘输入和磁盘读写)
- 外中断、使用中断完成键盘输入和磁盘读写
- 汇编学习--7.17--键盘输入和磁盘读写
- 《汇编语言》学习(十七)键盘输入和磁盘读写
- 汇编学习笔记第14~17章:端口-外中断-直接定址表-BIOS读写
- 正确的使用dd进行磁盘读写速度测试
- 正确的使用dd进行磁盘读写速度测试
- 使用DD进行Linux的磁盘读写性能测试
- 正确的使用dd进行磁盘读写速度测试
- 文章标题
- java串口包安装
- OC 语言学习第一天—OC 语法概览
- VOLLEY日志假想
- spark快速入门
- 第17章 使用BIOS进行键盘输入和磁盘读写
- ARM-Linux问题集锦
- spark属性配置
- Matlab计时函数总结
- Java基础题积累 -01
- 黑马程序员——排序与进制
- c#二次开发中遇到了这个问题
- android获取 TextView 中的可见字数
- 八大排序算法