是的,半年了。
今天,在百度知道向别人推荐了这个网站,才想起要来看看,结果账号密码都试了好几次,惭愧啊。。。才不到半年,我居然就快忘记这里了。。。刚登陆进来时受到了三条系统消息,忠诚地提示我有三天没有上线了,看了下时间,2009年8月23日。。。
突然想起了许多事情,在这个安安静静的小角落学DOS汇编时的情景,在论坛里为一个小问题死钻牛角尖的情景,看到有人耐心地检查我的作业时万分感动的情景。。。后来,我终于把王爽的那本书翻到最后了,好像是还剩了一章吧,结果就这样扔下了,一方面是大学开学了,事情特别多,另一方面则是自己太冒进,急着去看罗云斌的32位汇编了。然后就一直没来过,今...
- [younggay] 现在很少人用软驱了,可以装个vfloppy虚拟一个软盘来做,或者,跟大多数人一样,装个虚拟机吧。以后 08/18 09:16
- [younggay] 第2体重,偏移地址就不要加上“0000:”了。 08/18 08:52
- [zhy_zhy] 不好意思啊……我好像看成TF了……哎呀呀…… 08/07 22:49
- [游客] 没问题。 08/06 15:15
- [游客] 思路没问题,但是,格式上有问题,博主可以自己编译一下就见分晓了。 08/06 15:15
- [游客] 测试了一下,各个功能实现OK! 厉害。 08/06 13:53
- [游客] 对于你的解释,我有一事不明。 如果int 16H中没有设置IF=1的指令,那么当缓冲区为空的时候, 08/06 09:08
- [wsrf] 博主程序没有问题,继续努力。 08/04 18:33
- [wsrf] 没有问题。 08/04 18:31
- [wsrf] 如果真想解决这个问题,还得查相关资料,期待博主或高人能够解决。 08/04 18:08
[2010-01-23 13:57] 半年之后……
阅读全文 |
评论次数(0) |
浏览次数(633) |
所属类型(残影杂记)
[2009-08-08 14:58] 实验17
安装一个新的int 7ch中断例程,实现通过逻辑扇区号对软盘进行读写。
参数说明:
(1)用ah寄存器传递功能号:0表示读,1表示写;
(2)用dx寄存器传递要读写的扇区的逻辑扇区号;
(3)用es:bx指向存储读出数据或写入数据的内存区。
安装程序如下:
assume cs:code
code segment
in7ch: cmp ah,1
ja in7ch_ret
push ax
push cx
push dx
push bx
push ax
mov ax,dx
mov dx,0
mov bx,1440
div bx
mov bx...
参数说明:
(1)用ah寄存器传递功能号:0表示读,1表示写;
(2)用dx寄存器传递要读写的扇区的逻辑扇区号;
(3)用es:bx指向存储读出数据或写入数据的内存区。
安装程序如下:
assume cs:code
code segment
in7ch: cmp ah,1
ja in7ch_ret
push ax
push cx
push dx
push bx
push ax
mov ax,dx
mov dx,0
mov bx,1440
div bx
mov bx...
阅读全文 |
评论次数(1) |
浏览次数(689) |
所属类型(汇编作业)
[2009-08-05 20:47] 检测点17.1
“在int 16h中断例程中,一定有设置IF=1的指令。”这种说法对吗?
答:正确,该中断需要响应键盘输入,而在跳转到中断时CPU会将IF置0。...
答:正确,该中断需要响应键盘输入,而在跳转到中断时CPU会将IF置0。...
阅读全文 |
评论次数(2) |
浏览次数(733) |
所属类型(汇编作业)
[2009-08-05 16:07] 实验16
安装一个新的int 7ch中断例程,为显示输出提供如下功能子程序:
(1)清屏。
(2)设置前景色。
(3)设置背景色。
(4)向上滚动一行。
安装程序如下:
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset s
mov ax,0
mov es,ax
mov di,200h
mov cx,offset s_end-offset s
cld
rep movsb
mov word ptr es:[4*7ch],200h
mov word ptr es...
(1)清屏。
(2)设置前景色。
(3)设置背景色。
(4)向上滚动一行。
安装程序如下:
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset s
mov ax,0
mov es,ax
mov di,200h
mov cx,offset s_end-offset s
cld
rep movsb
mov word ptr es:[4*7ch],200h
mov word ptr es...
阅读全文 |
评论次数(1) |
浏览次数(691) |
所属类型(汇编作业)
[2009-08-04 22:43] 检测点16.2
下面的程序将data段中a处的8个数据累加,结果存储到b处的字中。补全程序。
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
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
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) |
浏览次数(632) |
所属类型(汇编作业)
[2009-08-04 21:51] 检测点16.1
下面的程序将code段中a处的8个数据累加,结果存储到b处的dword中,补全程序。
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,a[si]
add b[0],ax
adc b[2],0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start
或
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8
...
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,a[si]
add b[0],ax
adc b[2],0
add si,2
loop s
mov ax,4c00h
int 21h
code ends
end start
或
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8
...
阅读全文 |
评论次数(1) |
浏览次数(637) |
所属类型(汇编作业)
[2009-08-03 21:50] 实验15
安装一个新的int9中断例程,功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏幕的“A”;其他的键照常处理。
assume cs:code,ss:stack
stack segment
db 32 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,32
mov ax,cs
mov ds,ax
mov si,offset int9
mov ax,0
mov es,ax
mov di,204h
mov cx,offset int9end-...
assume cs:code,ss:stack
stack segment
db 32 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,32
mov ax,cs
mov ds,ax
mov si,offset int9
mov ax,0
mov es,ax
mov di,204h
mov cx,offset int9end-...
阅读全文 |
评论次数(1) |
浏览次数(669) |
所属类型(汇编作业)
[2009-08-02 23:11] 检测点15.1
最终程序为:
assume cs:code,ds:data,ss:stack
data segment
dw 0,0
data ends
stack segment
dw 64 dup (0)
stack 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:[4*9]
pop ds:[0]
push es:[4*9+2]
pop ds:[2]
cli
mov w...
assume cs:code,ds:data,ss:stack
data segment
dw 0,0
data ends
stack segment
dw 64 dup (0)
stack 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:[4*9]
pop ds:[0]
push es:[4*9+2]
pop ds:[2]
cli
mov w...
阅读全文 |
评论次数(1) |
浏览次数(701) |
所属类型(汇编作业)
[2009-08-02 17:30] 实验14
编程:以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。
assume cs:code,ds:data
data segment
db 9,8,7,4,2,0
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov ax,0b800h
mov es,ax
mov di,12*160+31*2
mov byte ptr es:[di+4],'/'
mov byte ptr es:[di+10],'/'
mov byte ptr es:[di+22],':'
mov b...
assume cs:code,ds:data
data segment
db 9,8,7,4,2,0
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov ax,0b800h
mov es,ax
mov di,12*160+31*2
mov byte ptr es:[di+4],'/'
mov byte ptr es:[di+10],'/'
mov byte ptr es:[di+22],':'
mov b...
阅读全文 |
评论次数(1) |
浏览次数(634) |
所属类型(汇编作业)
[2009-08-02 16:24] 检测点14.2
编程:用加法和移位指令计算(ax)=(ax)*10
assume cs:code
code segment
start: mov ax,200
shl ax,1
mov bx,ax
mov cl,2
shl ax,cl
add ax,bx
mov ax,4c00h
int 21h
code ends
end start...
assume cs:code
code segment
start: mov ax,200
shl ax,1
mov bx,ax
mov cl,2
shl ax,cl
add ax,bx
mov ax,4c00h
int 21h
code ends
end start...
阅读全文 |
评论次数(1) |
浏览次数(463) |
所属类型(汇编作业)
『 查看更多文章 』