;安装一个新的中断例程 int 7ch ,实现通过逻辑扇区号对软盘惊醒读写。
;参数ah 功能号,0:读。1:写
;DX要读或写的逻辑扇区号
;ES:BX指向要读的数据或者写入的内存区
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;通用中断安装程序 被安装开始标志install结束标志installend
;安装程序
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset install
mov ax,0
mov es,ax...
- [ce54605802] 经过我自己的测试,有问题,调试的时候出现除法溢出。需要改进 10/27 20:49
- [tinyparticle] 功能完成 10/14 18:39
- [tinyparticle] 正确 10/14 18:38
- [tinyparticle] 测试通过 10/14 18:38
- [tinyparticle] 理解没问题 10/11 14:49
- [ce54605802] 。。 “啥” 是东北方言 10/11 14:40
- [tinyparticle] 没啥问题。 10/11 14:26
- [younggay] 不错,加油。 10/10 13:33
- [ce54605802] 上去看了一下,真不错,网站也收藏了 我QQ是54605802 加下QQ吧,方便交流 10/09 23:15
- [tinyparticle] 加密与解密(第三版) 支持网站:http://bbs.pediy.com/index.php 10/09 23:09
- [ce54605802] 呵呵 你给加上0001H 有什么意义啊 加上 00FFH 试试啊 09/15 23:34
- [abob] 物理地址 等于 FFFF*16+FFFF 等于16FFE9,远远超过了20位数字 ------ 08/05 17:10
[2009-10-25 21:41] 实验17
阅读全文 |
评论次数(1) |
浏览次数(830) |
所属类型(汇编作业)
[2009-10-17 23:20] 检测点17.1
提问,在int16h中断例程中,一定有设置IF=1的指令,对吗?
回答,对的。
因为,因为我注意到,如果我进行键盘输入的时候,如果输入的过快,或者 在计算机正在相应其他事情的时候进行连续输入的时候,我输入的一些东西会没有及时显示在屏幕上,等计算机反应回来的时候,我那时候输入的东西会一下子全都显示到了屏幕上,感觉是被存到了键盘缓存区,也就是说这个时候,int 16h 被其他的中断程序中断掉了。
看样子,好像 int 16h 运行起来后好像就进入了无限循环的状态,就不会停止了,但是允许其他的程序中断掉他。...
回答,对的。
因为,因为我注意到,如果我进行键盘输入的时候,如果输入的过快,或者 在计算机正在相应其他事情的时候进行连续输入的时候,我输入的一些东西会没有及时显示在屏幕上,等计算机反应回来的时候,我那时候输入的东西会一下子全都显示到了屏幕上,感觉是被存到了键盘缓存区,也就是说这个时候,int 16h 被其他的中断程序中断掉了。
看样子,好像 int 16h 运行起来后好像就进入了无限循环的状态,就不会停止了,但是允许其他的程序中断掉他。...
阅读全文 |
评论次数(0) |
浏览次数(604) |
所属类型(汇编作业)
[2009-10-17 01:52] 实验16
;编程:实现一个子程序setscreen,为显示输出提供如下功能:
;(1) 清屏。
;(2) 设置前景色。
;(3) 设置背景色。
;(4) 向上滚动一行。
;
;入口参数说明:
;(1) 用 ah 寄存器传递功能号:0 表示清屏,1表示设置前景色,2表示设置背景色,3 表示向上滚动一行;
;(2) 对于2、3号功能,用 al 传送颜色值,(al) ∈{0,1,2,3,4,5,6,7}
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;通用中断安装程序 被安装开始标志install结束标志installe...
;(1) 清屏。
;(2) 设置前景色。
;(3) 设置背景色。
;(4) 向上滚动一行。
;
;入口参数说明:
;(1) 用 ah 寄存器传递功能号:0 表示清屏,1表示设置前景色,2表示设置背景色,3 表示向上滚动一行;
;(2) 对于2、3号功能,用 al 传送颜色值,(al) ∈{0,1,2,3,4,5,6,7}
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;通用中断安装程序 被安装开始标志install结束标志installe...
阅读全文 |
评论次数(0) |
浏览次数(611) |
所属类型(汇编作业)
[2009-10-14 15:59] 检测点16.2
两个空 填写
assume cs:code,es:data
data segment
a db 1,2,3,4,5,6,7,8
b dw 0
data ends
code segment
start:
mov ax,data ;
mov es,ax ;这两个是填空,吧ES制定到DATA
mov si,0
mov cx,8
s:
mov al,a[si]
mov ah,0
add b,ax
inc si
loop s
mov ax,4c00h
int 21h
code ends
end start...
assume cs:code,es:data
data segment
a db 1,2,3,4,5,6,7,8
b dw 0
data ends
code segment
start:
mov ax,data ;
mov es,ax ;这两个是填空,吧ES制定到DATA
mov si,0
mov cx,8
s:
mov al,a[si]
mov ah,0
add b,ax
inc si
loop s
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(1) |
浏览次数(956) |
所属类型(汇编作业)
[2009-10-14 15:24] 检测点16.1
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8
b dd 0
start:
mov si,0
mov cx,8
s:
mov ax,word ptr a[si]
add word ptr b[0],ax
adc word ptr cs:b[2],0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start...
code segment
a dw 1,2,3,4,5,6,7,8
b dd 0
start:
mov si,0
mov cx,8
s:
mov ax,word ptr a[si]
add word ptr b[0],ax
adc word ptr cs:b[2],0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(1) |
浏览次数(845) |
所属类型(汇编作业)
[2009-10-14 14:25] 实验15
;松开A的时候出发 全屏输出AAAAAA
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov ax,0
mov es,ax
mov si,offset int9
mov di,204h
mov cx,offset int9end-offset int9
cld
rep movsb
push es:[9*4]
pop es:[200...
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,128
push cs
pop ds
mov ax,0
mov es,ax
mov si,offset int9
mov di,204h
mov cx,offset int9end-offset int9
cld
rep movsb
push es:[9*4]
pop es:[200...
阅读全文 |
评论次数(1) |
浏览次数(841) |
所属类型(汇编作业)
[2009-10-13 21:53] 检测点15.1
1,可以精简为:
pushf
call dword ptr ds:[0]
2.修改后的程序为
assume cs:code
stack segment
db 128 dup (0)
stack ends
data segment
dw 0,0
data ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,128
mov ax,data
mov ds,ax
mov ax,0
mov es,ax
push es:[9*4]
pop ds:[0]
push ...
pushf
call dword ptr ds:[0]
2.修改后的程序为
assume cs:code
stack segment
db 128 dup (0)
stack ends
data segment
dw 0,0
data ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,128
mov ax,data
mov ds,ax
mov ax,0
mov es,ax
push es:[9*4]
pop ds:[0]
push ...
阅读全文 |
评论次数(0) |
浏览次数(567) |
所属类型(汇编作业)
[2009-10-11 15:56] 实验14
assume cs:code
code segment
start:
mov ax,0b800h
mov es,ax
mov di,160*12 ;初使化一些参数
mov al,9 ;年
out 70h,al
in al,71h
call time
mov ah,47
mov byte ptr es:[di].4,ah
add di,6
mov al,8 ;月
out 70h,al
in al,71h
call time
mov ah,47
mov byte ptr es:[di].4,ah
add di,6
mov al...
code segment
start:
mov ax,0b800h
mov es,ax
mov di,160*12 ;初使化一些参数
mov al,9 ;年
out 70h,al
in al,71h
call time
mov ah,47
mov byte ptr es:[di].4,ah
add di,6
mov al,8 ;月
out 70h,al
in al,71h
call time
mov ah,47
mov byte ptr es:[di].4,ah
add di,6
mov al...
阅读全文 |
评论次数(0) |
浏览次数(568) |
所属类型(汇编作业)
[2009-10-11 14:38] 检测点14.2
;用加法和移位指令计算 AX=AX*10
;相当与计算 AX*2+AX*8
assume cs:code
code segment
start:
push bx ;临时使用
push cx ;用CL做位移计数器
mov bx,ax ;把AX的数据复制进BX
shl ax,1 ;ax*2
mov cx,0
mov cl,3 ;CL传递进去3
shl bx,cl ;bx*8
add ax,bx ;相加
pop cx
pop bx
mov ax,4c00h
int 21h
code ends ...
;相当与计算 AX*2+AX*8
assume cs:code
code segment
start:
push bx ;临时使用
push cx ;用CL做位移计数器
mov bx,ax ;把AX的数据复制进BX
shl ax,1 ;ax*2
mov cx,0
mov cl,3 ;CL传递进去3
shl bx,cl ;bx*8
add ax,bx ;相加
pop cx
pop bx
mov ax,4c00h
int 21h
code ends ...
阅读全文 |
评论次数(1) |
浏览次数(954) |
所属类型(汇编作业)
[2009-10-11 14:17] 检测点14.1
1读取CMOS ROM 的2号单元的内容
mov ax,0 ; ax清0
mov al,2
out 70h,al ;把地址传递进去
in al,71h ;把数据读出来
2。向CMOS RAM的2号单元写入0
mov ax,0 ;AX清0
mov al,2
out 70h,al ;地址传递进去
mov al,0 ;0传递进AL
out 71h,al ; 数据写入...
mov ax,0 ; ax清0
mov al,2
out 70h,al ;把地址传递进去
in al,71h ;把数据读出来
2。向CMOS RAM的2号单元写入0
mov ax,0 ;AX清0
mov al,2
out 70h,al ;地址传递进去
mov al,0 ;0传递进AL
out 71h,al ; 数据写入...
阅读全文 |
评论次数(2) |
浏览次数(921) |
所属类型(汇编作业)
『 查看更多文章 』