在int 16中断例程中IF一定要设置为1
因为只有这样才可以接受来自键盘的输入(键盘输入为中断)
才可以发挥其作用,从键盘缓冲区读取键盘的输入...


- [游客] 课程设计二能做出来最好了。不过,对于以后的学习也没什么大影响。呵呵 04/29 11:19
- [sbx2000_0] 还是没有学习到家呀! 11/02 14:26
- [wushuai59] 谢谢了,这个对我帮助很大,我说我怎么老是出现问题呢,看完你的总结,我明白了。 06/02 23:13
- [游客] 你在香港!我在台灣 01/24 10:51
- [游客] 是循环数cx,嘿嘿 12/09 18:57
- [游客] 看有人用10这个乘数当循环用,挺不错的 12/09 18:57
- [happyxulingli] 对于3:其实,可以给一过内存空间,用来保护ax,cx,dx的值,就可以避免栈带来的麻烦了。 呵呵. 11/24 12:31
- [游客] 好文,顶阿~ 11/14 13:18
- [Wednesday] 收藏之,加顶一下!!! 11/09 17:33
- [Wednesday] 说得对, 可以参考 王爽《汇编语言》论坛 勘误区的帖子! 11/09 17:03
- [wubizao] 多谢bloom的提醒 我也是有些松懈了 在学习上是不能找任何理由的 现在虽然不能每天花很多时间 11/17 22:51
- [bloom] 博主,继续加油啊!行百里者半九十,越到最后越需要坚持,还有课程设计二呢,努力吧! 11/17 15:10
- [happyxulingli] 呵呵 你学的不错,挺深刻的 继续努力,我会一直支持你for ever 呵呵 我还得向你学习呢 11/09 21:22
- [playboy] 有望成为number one! 10/29 09:33
- [wubizao] 不好意思,冒得 10/23 15:02
- [lijiangwei] 哥们儿,有没有CHM的电子书啊,有的话给我发一个,824956294 10/22 16:15
[2007-11-05 19:02] 检测点17.1
阅读全文 |
评论次数(4) |
浏览次数(1889) |
所属类型(汇编作业)
[2007-11-04 19:57] 实验16--多个功能的子程序的中断例程
代码如下:
assume cs:code,ss:stack
stack segment
db 128 dup (0)
stack ends
code segment
/*程序setscreen部分*/
setscreen: jmp short set
table dw sub1,sub2,sub3,sub4;将各子程序偏移地址存在table中
set: push bx
cmp ah,3 ;比较功能号
...
assume cs:code,ss:stack
stack segment
db 128 dup (0)
stack ends
code segment
/*程序setscreen部分*/
setscreen: jmp short set
table dw sub1,sub2,sub3,sub4;将各子程序偏移地址存在table中
set: push bx
cmp ah,3 ;比较功能号
...
阅读全文 |
评论次数(3) |
浏览次数(3315) |
所属类型(汇编作业)
[2007-10-31 22:48] 检测点16.2
代码如下:
assume cs:code,es:data ;将data段与ex联系起来
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联系起来
mov si,0
mov cx,8
s: mov al,a[si]
mov ah,0
...
assume cs:code,es:data ;将data段与ex联系起来
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联系起来
mov si,0
mov cx,8
s: mov al,a[si]
mov ah,0
...
阅读全文 |
评论次数(3) |
浏览次数(1316) |
所属类型(汇编作业)
[2007-10-30 22:50] 检测点16.1
代码如下:
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8
b dw 0
start: mov si,0
mov cx,8
s: mov ax,a[si] ;等价mov ax,cs:[0+si],字操作
add b,ax ;等价add cs:[16],ax,字操作
adc b,0 ;若有进位,加上进位cf
add si,2
loop s...
assume cs:code
code segment
a dw 1,2,3,4,5,6,7,8
b dw 0
start: mov si,0
mov cx,8
s: mov ax,a[si] ;等价mov ax,cs:[0+si],字操作
add b,ax ;等价add cs:[16],ax,字操作
adc b,0 ;若有进位,加上进位cf
add si,2
loop s...
阅读全文 |
评论次数(2) |
浏览次数(1276) |
所属类型(汇编作业)
[2007-10-30 10:34] 实验15--安装新的中断int9
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 ;设置串操作的参数ds
pop ds
mov ax,0
mov es,ax ...
stack segment
db 128 dup (0) ;定义栈满足程序栈的操作
stack ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,128
push cs ;设置串操作的参数ds
pop ds
mov ax,0
mov es,ax ...
阅读全文 |
评论次数(5) |
浏览次数(1286) |
所属类型(汇编作业)
[2007-10-28 22:35] 检测点15.1(几天没有进展了)
(1)
可以精简为
pushf
call dword ptr ds:[0]
因为在执行完call dword ds:[0]后调用了int9,if和tf已经设置完毕
(2)
cli
mov word ptr es:[9*4],offset int9
mov es:[9*4+2],cs
sti
在前面加上cli将if=0,禁止响应中断
后面加上sti允许后面有中断响应
ps:好几天没有进展了
也不是没有学,只是自己专业的课没有学好
时间分配不均,唉,只能自己给自己come on了!!!!!...
可以精简为
pushf
call dword ptr ds:[0]
因为在执行完call dword ds:[0]后调用了int9,if和tf已经设置完毕
(2)
cli
mov word ptr es:[9*4],offset int9
mov es:[9*4+2],cs
sti
在前面加上cli将if=0,禁止响应中断
后面加上sti允许后面有中断响应
ps:好几天没有进展了
也不是没有学,只是自己专业的课没有学好
时间分配不均,唉,只能自己给自己come on了!!!!!...
阅读全文 |
评论次数(1) |
浏览次数(665) |
所属类型(汇编作业)
[2007-10-26 17:45] 实验14 访问CMOS RAM
代码如下:
assume cs:code,ds:data
data segment
db "??/??/?? ??:??:??",0 ;定义显示的格式
db 9,8,7,4,2,0 ;存放需访问的端口单元号
data ends
code segment
start: mov ax,data ;初始化
mov ds,ax
mov ax,0b800h
mov es,ax
mov si,0
...
assume cs:code,ds:data
data segment
db "??/??/?? ??:??:??",0 ;定义显示的格式
db 9,8,7,4,2,0 ;存放需访问的端口单元号
data ends
code segment
start: mov ax,data ;初始化
mov ds,ax
mov ax,0b800h
mov es,ax
mov si,0
...
阅读全文 |
评论次数(3) |
浏览次数(682) |
所属类型(汇编作业)
[2007-10-26 15:40] 检测点14.2
程序如下:
ssume cs:code
code segment
start: mov ax,6550
mov bx,ax
shl bx,1 ;ax*2
mov cl,3
shl ax,cl ;ax*8
add ax,bx ;ax*2+ax*8
mov ax,4c00h
int 21h
code ends
end start
注意ax*10的结果不能超过65535...
ssume cs:code
code segment
start: mov ax,6550
mov bx,ax
shl bx,1 ;ax*2
mov cl,3
shl ax,cl ;ax*8
add ax,bx ;ax*2+ax*8
mov ax,4c00h
int 21h
code ends
end start
注意ax*10的结果不能超过65535...
阅读全文 |
评论次数(3) |
浏览次数(1015) |
所属类型(汇编作业)
[2007-10-25 22:05] 检测点14.1
(1)
mov al,2 ;先将2号传给al
out 70h,al ;把2号单元地址“2”送道70h端口
in al,71h ;从71h中读取数据,即2号单元得数据
(2)
mov al,2
out 70h,al
mov al,0
out 71h,al
在in out指令中只能使用ax或者al存放数据
端口号在256~65535的范围时候,端口号放在dx中...
mov al,2 ;先将2号传给al
out 70h,al ;把2号单元地址“2”送道70h端口
in al,71h ;从71h中读取数据,即2号单元得数据
(2)
mov al,2
out 70h,al
mov al,0
out 71h,al
在in out指令中只能使用ax或者al存放数据
端口号在256~65535的范围时候,端口号放在dx中...
阅读全文 |
评论次数(1) |
浏览次数(607) |
所属类型(汇编作业)
[2007-10-25 12:27] 实验13(3)--显示英文诗
代码如下:
assume cs:code
code segment
s1: db 'Love is more than a word,','$'
s2: db 'It syas so much.','$'
s3: db 'When i see these four letters,','$'
s4: db 'I almost feel your touch.','$'
s5: db 'This only happend since,','$'
s6: db 'I feel in love with you.','$'
s7: db 'Why this word does ...
assume cs:code
code segment
s1: db 'Love is more than a word,','$'
s2: db 'It syas so much.','$'
s3: db 'When i see these four letters,','$'
s4: db 'I almost feel your touch.','$'
s5: db 'This only happend since,','$'
s6: db 'I feel in love with you.','$'
s7: db 'Why this word does ...
阅读全文 |
评论次数(1) |
浏览次数(1010) |
所属类型(汇编作业)