qintangtao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年1月20日

摘要: 求安装一个新的int 7ch中断例程,实现通过逻辑扇区号对软盘进行读写操作参数说明:1、用ah寄存器传递功能号,0表示读,1表示写2、用bx寄存器传递要读写的扇区的逻辑扇区号3、用es:si指向存储读出数据或写入数据的缓冲区三、分析 分析可得逻辑扇区号和物理扇区号对应关系如下:逻辑扇区号 = (面号*80+磁道号)*18+扇区号-1 那么可以使用下面的算法来计算int():描述性运算符,取商rem():描述性运算符,取余数逻辑扇区号 = (面号*80+磁道号)*18+扇区号-1面号 = int(逻辑扇区号/1440)磁道号 = int(rem(逻辑扇区号/1440)/18)扇区号 =... 阅读全文
posted @ 2013-01-20 23:47 qintangtao 阅读(252) 评论(0) 推荐(0) 编辑

摘要: 王爽汇编语言 实验17 中断例程测试程序一、实验要求 测试实验17中断例程二、测试思路1、编写程序A,实现将显存中第一屏4000个字节(8个扇区)写入软盘2、编写程序B,实现将软盘中8个扇区的数据读出到显存第一屏中3、运行实验17的中断安装程序,然后运行程序A,清屏后运行程序B。正常状况下屏幕内容恢复三、详细设计1、程序Aassume cs:codecode segmentstart: mov ax,0b800h mov es,ax mov si,0 mov ah,1 mov dx,0 mov al,8 mov bl,0 int 7ch mov ax,4c00h int 21h code .. 阅读全文
posted @ 2013-01-20 23:46 qintangtao 阅读(155) 评论(0) 推荐(0) 编辑

摘要: 一、相关资料系统启动初始化完成后最终调用19h,该中断读取软盘的第一扇区或硬盘的第一扇区到0:7c00开始的512个字节的内存空间中,并将cs:ip指向0:7c00执行。更详细参考王爽汇编语言第二版,课程设计2,p.312二、设计思路将安装程序分为三个段,1、第一个段为安装程序,负责将第二个段写入第一扇区,第三个段写入2-17扇区;2、第二个段是主引导程序,存在于软盘第一扇区,由BIOS的19h中断读取到0:7c00开始的内存单元中,并执行0:7c00的第一行代码。这一段的任务是将软盘2-17扇区的数据读入内存,并执行。(这里读入到了2000:0开始的内存中)3、第三个段是系统程序,存放所有引 阅读全文
posted @ 2013-01-20 23:44 qintangtao 阅读(416) 评论(0) 推荐(0) 编辑

摘要: ;编程;接收用户的键盘输入, 输入'r',将屏幕上的字符设置为红色; 输入'g',将屏幕上的字符设置为绿色; 输入'b',将屏幕上的字符设置为蓝色assume cs:codecode segmentstart: mov ah, 0 int 16h ;从键盘缓冲区中读取数据[ah:扫描码、al:ASCII] mov ah, 1 ;初始化 颜色 1111 1000 or [ah=0000 0001] 蓝色 cmp al, 'r' je red cmp al, 'g' je green cmp al, 'b 阅读全文
posted @ 2013-01-20 22:50 qintangtao 阅读(443) 评论(0) 推荐(0) 编辑

摘要: ;在屏幕中间依次显示'a'~'z',并可以让人看清。;在显示的过程中,按下Esc键后,改变显示的颜色assume cs:codestack segment db 128 dup(0)stack endsdata segment dw 0, 0data ends code segment start: ;设置栈 mov ax, stack mov ss, ax mov sp, 128 ;设置数据段 mov ax, data mov ds, ax ;--将原来的int 9中断例程的入口地址保存在ds:0[IP]、ds:2[CS]单元中 mov ... 阅读全文
posted @ 2013-01-20 01:21 qintangtao 阅读(536) 评论(0) 推荐(0) 编辑