![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 00:10 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 汇编语言编译器使用3 |
| 可打印版本 2,495 / 6 |
| 第1楼 chrise | 发表于 2010-04-07 21:24 |
| 初级用户 发帖 32 积分 88 | |
|
汇编语言编译器使用3 是检测单元STRN中字符个数的程序
DATAS SEGMENT STRN DB 'ASDFADFASSDF','$' STRLN DB ? DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX MOV DL,0 LEA SI,STRN CYCLE:CMP ,'$' JE DONE INC DL INC SI JMP CYCLE DONE:MOV STRLN,DL AND DL,30H MOV AH,02H INT 21H MOV AH,4CH INT 21H CODES ENDS END START 可以正常编译,但是运行时却不会显示出个数,已经写上了显示的程序,是什么原因呢?望指教 |
|
| 第2楼 本是 | 发表于 2010-04-08 09:04 |
| 银牌会员 发帖 790 积分 2,227 | |
|
错误有2处,一是STRN DB 'ASDFADFASSDF','$',但关键在于AND DL,30H。
你本来是想显示DL中字符个数(你的个数显示太简单,只能显示1到9,其它就显示为字符了),其实也显示了,但因为AND DL,30H后DL为0,加上字符颜色是默认值,故看不出。只要改AND为ADD,并至少去掉STRN中3个及以上的字符,即可正常显示。 |
|
| 第3楼 070 | 发表于 2010-04-08 12:15 |
| 高级用户 发帖 218 积分 663 来自 福建 | |
|
本是 对汇编很精通啊,厉害
chrise,你学汇编是用什么教程? 书后面有没有附带电子版的源代码? |
|
| 第4楼 本是 | 发表于 2010-04-08 14:38 |
| 银牌会员 发帖 790 积分 2,227 | |
|
070还是007?谢谢夸奖!高手不敢当,爱好而已。
初学者是这样的——几乎什么都会错的。记得有本专讲VGA编程的书,其中有个VGA直线显示程序,某一行一个寄存器印错,怎么也调试不出来。后来还是看到类似程序段,对勘悟出的。汇编一定要读懂源程序,然后尝试改进,最后就能自编了。一个好的办法是从王爽的《汇编语言》起步。我当年可没这么好的入门砖! |
|
| 第5楼 070 | 发表于 2010-04-08 15:14 |
| 高级用户 发帖 218 积分 663 来自 福建 | |
|
070,不是特工哈。
汇编不算太难,结构清晰的,应该还是没有问题。。。 我对c更了解些,汇编能不用就不用。 现在论坛越来越萧条了啊,发帖回复的都很少了 Wengier貌似也好久没有现身了,新dos时代也很久没有更新,许多软件链接都失效了。 国内开源软件做的不多,关于dos的就更不多了。 |
|
| 第6楼 chrise | 发表于 2010-04-08 20:06 |
| 初级用户 发帖 32 积分 88 | |
|
用的教程 我用的是西安电子科技大学罗万钧写的书。刚开始学,出现些问题确实自己找不出,多谢你们指教啊
|
|
| 第7楼 070 | 发表于 2010-04-09 11:42 |
| 高级用户 发帖 218 积分 663 来自 福建 | |
|
网上都推荐王爽的汇编书籍,我没有看过,你可以试着找找看,评价那么好,应该有点底蕴在里面。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |