【汇编语言】实验17-用逻辑扇区计算出面号、磁道号、扇区号,调用int 13h 中断例程进行实际读写

这篇博客探讨了使用汇编语言进行逻辑扇区计算,以获取面号、磁道号和扇区号,并尝试通过调用int 13h中断例程实现扇区的实际读写。作者遇到了问题,程序在读取扇区内容到指定内存区域时,虽然al寄存器返回了预期结果,但ah寄存器的值为FF,表示操作失败。博主寻求帮助,希望能找到程序中的错误。
摘要由CSDN通过智能技术生成

大佬帮我看看

** 这个程序,我的目的是将扇区的内容读到指定的data段中,但是最终结果ah = FF,al = 01 ,al跟预期结果一样,但是ah=FF 按照书上的说法应该是操作失败了,相当于没做出来。还请懂的朋友帮我看看错在哪里了**

源代码

assume cs:code
stack segment
	db 128 dup(0)
stack ends

data segment
	db 512 dup(0)
data ends

code segment
start:
	mov bx,stack
	mov ss,bx
	mov sp,128

	call init_reg										;初始化寄存器用以复制中断例程
	call cpy_interrupt									;复制中断例程
	call set_interrupt									;安装中断例程
	call test_data										;测试

	mov ax,4c00h
	int 21h

;================init_reg========================
init_reg:
	mov bx,cs
	mov ds,bx
	mov si,offset int7ch								;从int7ch处开始复制

	mov bx,0
	mov es,bx
	mov di,200h											;复制到0000:0200处

	mov cx,offset int7ch_end - offset int7ch			;需要复制的长度
	ret

;=====&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值