下面这段汇编代码是从磁盘第2扇区读取4个扇区2K字节到内存0x90200开始处。使用的是INT 0x13 BIOS中断程序,主要就是学习一下到底该如何调用这个中断程序。
JNC:如果CF标志位没有被置位。J就是段内跳转指令。常数用#号打头。
读完磁盘4个扇区后,仍然是用INT 0x13中断程序,ah=0x08,dl=0,可以获取到磁盘信息:
需要说明的是第86行,因为是使用的软盘启动,软盘的磁道号不会超过256的,所以高两位肯定都是0,而这里主要是想获取每道的扇区数量。
另外,上面代码中使用了“段超越”或者称为段覆盖前缀,将cx(每磁道扇区数)复制到CS:sectors内存处。这里思考一个问题如果不用seg cs,每磁道扇区数会被保存在哪个段呢?另外,INT 0x13修改了es的值,es被修改成了什么?
下面再继续分析获取光标位置和打印文本信息的代码: