- [kanwangxue] 感觉楼主很乖的。有点孩子气。呵呵。 01/27 08:58
- [kanwangxue] it界,进去干嘛啊,到时候自己牛比了,首先写一个自己的语言,自己用。进入IT界不就是随波做流吗/?他 01/27 08:57
- [kanwangxue] 哥们,不要为了赚钱而学计算机。 计算机是年轻时候干的, 30岁后可以开始想赚钱,年轻嘛,不要这么悲 01/27 08:50
- [游客] 怎么说? 01/26 16:22
- [游客] 你这不行啊,差远了! 01/10 22:29
- [chinatree] 谢谢你。相信你也会成功的。 01/09 14:22
- [landyking] 哥们儿,好久不见。相信你会成功的。 12/02 23:34
- [chinatree] 哇哇,被挖坟了。莫生气,只是感觉谦虚些好,就算你的程序真的是史上最强的,也别说出来嘛,自己偷着乐就行 11/20 00:41
- [xiaoyao2012] 你的程序和我的程序比较也不见得你的程序又节约空间,在某种意义上说你的程序用了没学的指令,所以不见得你 11/19 15:39
- [heliang6291] 一起加油啊 07/02 02:45
- [游客] 急需一个汇编程序大作业。。。。。。。。。。。。。。。。。。。??? 12/28 16:50
- [游客] 这么多人喜欢你,我嫉妒了。但你不可以喜欢那么多,允许你在我不需要你的时候帮别人。如果我需要立叫立到。 11/13 13:11
- [tily] 兄弟 我来看你啦 呵呵 最近可好呀 09/26 22:17
- [stqcw] 能加我qq吗?1270911891 我在做课程设计2的时候 遇到点问题 09/24 09:16
- [stqcw] 能加我qq吗?1270911891 我的环境还是有点问题。按下A的时候不能显示满屏的A 09/20 09:36
- [stqcw] 牛人 我在xp里面运行王爽 汇编第二版 p280的例子 按下esc键没反应 呀 怎样在虚拟机里配置一 09/17 15:18
- [landyking] 呵呵,交个朋友,共同学习. 09/08 00:03
- [luyingdzx] 能知道你的QQ吗?或者请加一下我的QQ271190440,可以吗 虽然在论坛能获得解答,但是有的问 08/07 21:32
[2011-08-09 18:26] 一个另类的时间小程序
code segmemt
assume cs:code
db "9,8,7,4,2,0"
db "// :: "
aaaa db 80 dup (0);定义80个符,正好一行
Db "$"
sta:mov ds,cs
mov dx,offset aaaa
xor si,si
mov di,0ch
mov cx,6
lp:mov al,[si]
out 70h,al
in al,71h
mov ah,al
shr ah,1
shr ah,1
shr ah,1
shr ah,1
and al,0fh
mov [di],ah
mov [di+1],al
mov al,[si+6]
mov [di+2],al
Add di,3
inc si
Loop lp
in al,60h
cmp al,"q";按q键退出
jz q
mov ax,900h;因为当时我没有弄明白字符属性,所以就用中断代替了
int 21h
jmp sta
q:mov ax,4c00h
int 21h
code ends
end sta
大家别丢砖呀
[ chinatree 发表于 2011-08-09 19:09 ]
有个错误,那一句应该是:Db 80 dup ( );应该是空格不是零,另外可能还有错误,不知道代码段是不是可写的
[ chinatree 发表于 2011-08-09 22:22 ]
哦,还忘了在第二十一行把时间转成ascii了,要加一句add ax,3030h
[ tily 发表于 2011-08-10 00:28 ]
code segmemt mov ds,cs
这个程序从哪看来的 不对劲啊 错误挺多的 调试也是死循环 有空好好研究研究
[ tily 发表于 2011-08-10 00:34 ]
有点像是想用21号中断例程9号子程序输出显示出来
[ tily 发表于 2011-08-10 01:23 ]
花了我一个小时 改了代码的几个错误,调试后达到你的要求啦,按Q退出。
code segment
assume cs:code
db 9,8,7,4,2,0
db "// :: "
aaaa db 80 dup (0);定义80个符,正好一行
Db "$"
sta: mov ax,cs
mov ds,ax
mov dx,offset aaaa
xor si,si
mov di,0ch ;mov di,0ch 这个看了半天才知道是aaaa 的偏移地址 可以写成: mov di,offset aaa
mov cx,6
lp:mov al,[si]
out 70h,al
in al,71h
mov ah,al
shr ah,1 ;此处还不如用mov cl,4 shr ah,cl 不过CX要先保护起来(压栈) 因后面LOOP循环要用
shr ah,1
shr ah,1
shr ah,1
and al,0fh
add ah,30h
add al,30h
mov [di],ah ;将十位数字节放入aaaa定义的数据段处
mov [di+1],al ;将个位数字节放入aaaa定义的数据段处
mov al,[si+6]
mov [di+2],al ;将分隔符放入aaaa定义的数据段处
add di,3
inc si
Loop lp
in al,60h
cmp al,10h;按q键退出
je q
mov ax,900h;利用21号中断例程9号子程序输出offset aaa 下的字符串,以$结束,ds:dx指向第一个字符 。
int 21h
jmp sta
q:mov ax,4c00h
int 21h
code ends
end sta
[ chinatree 发表于 2011-08-10 08:08 ]
[ tily 发表于 2011-08-10 00:28 ] [删除评论 ]
code segmemt mov ds,cs
这个程序从哪看来的 不对劲啊 错误挺多的 调试也是死循环 有空好好研究研究
这句是错了,应该用通用寄存器中转下,但是不是死循环。楼上说的我都在后面跟贴改了
[ tily 发表于 2011-08-10 08:34 ]
你想让程序在按Q退出来,但直接写cmp al,"q"好像不行,我写的cmp al,10h;因为Q的扫描码是10H
[ chinatree 发表于 2011-08-10 13:09 ]
可以的,我试过,我记得书里也讲过这种用法,要么你是说从60h端口读出的不是ascii?