免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4925 | 回复: 9
打印 上一主题 下一主题

如何在DOS下用DEBUG写HELLO WORLD?  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-11 15:25 |只看该作者 |倒序浏览
家里有台电脑给表弟学汇编程序用。

但机器太老了。接口和现在的计算机的接口不同,没有光驱,软驱也没有。连鼠标的接口都不一样。所以无法复制NASM。

请问我现在想为表弟写一个程序,大家有没有DEBUG写HELLO WORLD的代码?谢谢

论坛徽章:
0
2 [报告]
发表于 2007-06-11 15:29 |只看该作者
这个,还是找 DOS 手册吧

论坛徽章:
0
3 [报告]
发表于 2007-06-11 15:30 |只看该作者

版主大哥,别锁帖啊

我忘说了,DOS手册我找了。我也会汇编。只是他的语法是什么样子的?

[ 本帖最后由 信赖CU 于 2007-6-11 15:31 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-06-11 15:31 |只看该作者


[ 本帖最后由 信赖CU 于 2007-6-11 15:41 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-06-11 15:31 |只看该作者
家里有台电脑给表弟学汇编程序用。

但机器太老了。接口和现在的计算机的接口不同,没有光驱,软驱也没有。连鼠标的接口都不一样。所以无法复制NASM。

请问我现在想为表弟写一个程序,大家有没有DEBUG写HELLO WORLD的代码?谢谢

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2007-06-11 15:46 |只看该作者
找本 MASM 6.0 大全看看,里面有现成的代码。

论坛徽章:
24
狮子座
日期:2013-12-31 10:48:0015-16赛季CBA联赛之吉林
日期:2016-04-18 14:43:1015-16赛季CBA联赛之北控
日期:2016-05-18 15:01:4415-16赛季CBA联赛之上海
日期:2016-06-22 18:00:1315-16赛季CBA联赛之八一
日期:2016-06-25 11:02:2215-16赛季CBA联赛之佛山
日期:2016-08-17 22:48:2615-16赛季CBA联赛之福建
日期:2016-12-27 22:39:272016科比退役纪念章
日期:2017-02-08 23:49:4315-16赛季CBA联赛之八一
日期:2017-02-16 01:05:3415-16赛季CBA联赛之山东
日期:2017-02-22 15:34:5615-16赛季CBA联赛之上海
日期:2017-11-25 16:17:5015-16赛季CBA联赛之四川
日期:2016-01-17 18:38:37
7 [报告]
发表于 2007-06-11 16:01 |只看该作者

回复 3楼 信赖CU 的帖子

原帖由 信赖CU 于 2007-6-11 15:31 发表
家里有台电脑给表弟学汇编程序用。

但机器太老了。接口和现在的计算机的接口不同,没有光驱,软驱也没有。连鼠标的接口都不一样。所以无法复制NASM。

请问我现在想为表弟写一个程序,大家有没有DEBUG写HELL ...


google  一下  dos  debug , 也能找到一些比如这个:

http://www.pconline.com.cn/pcedu/soft/gj/sys/0502/551643.html

唤醒经典:  Debug应用实例秀(1)          出处:电脑爱好者
[ 2005-02-04 10:14:36 ]         作者:俞伟明         责任编辑:linjixiong

.....

实例2:制作BIOS密码破解器

  忘记BIOS密码,一般都采用放电法来清空密码,但这对普通用户有一定难度,并且还得开机箱。其实利用Debug的0命令则简单得多!请在“-”后输入以下命令:

  o 70 19
  o 71 15
  q

  重启电脑,系统提示CMOS校验和出错,并要求重新进入BIOS设置CMOS。

  小提示:70和71是CMOS的两个端口,我们可以在它们的后面随意写入一些错误数据(如19、16、17等),就会清空CMOS里所有设置,如果不见效不妨多用几个数据试试。

  如果觉得每次输入Debug命令太麻烦,可以用下面的方法把命令存成一个COM文件,需要解除密码时只要运行一下就行了。请在Debug中命令提示符“-”后输入以下命令:

  A 100
  MOV DX,70
  MOV AL,10
  OUT DX,AL
  MOV DX,71
  MOV AL,01
  OUT DX,AL(这里要两次回车,接着会出现“-”提示符,然后再输入下面的命令)
  R CX(回车后会出现“CX 0000”,然后再次按回车)
  0C
  N pass.COM
  W
  Q

  这样就会在Debug当前目录下生成pass.com,是一个清除BIOS口令设置的程序,只要在DOS提示符下键入“pass”,然后按回车即可。经我们测试,其实在Windows下面运行也可以成功。知识不太稳定,有时会重新启动计算机。
......

论坛徽章:
0
8 [报告]
发表于 2007-06-11 16:05 |只看该作者
DOS命令提示符下输入。
debug
然后在debug命令提示符(-)后,输入
a 100            #表示从代码段0x100H处开始汇编
mov ah, 09    #DOS中断功能09H
mov dx, 0109 #表示字符串处于0109H处。dx保存字符串的首地址。
int 21              # DOS中断
int 20              # 退出中断
db "Hello, world", a, d, '$'                #字符串

多按几次回车结束指令输入,回到(-)状态下。

mov dx, 0109这一句,由于不知道字符串的首地址在那里,所以开始时随便数一个地址,比如mov dx, 0200
然后再输入完成后,得知字符串的位置时0109H,这是再输入
a 102 (102是mov dx, ..这条指令的地址,现在要覆盖这条指令)
mov dx, 0109
以修改那条指令
然后
r ip
100
使ip寄存器的内容设置为0100h,也就是代码开始汇编的地方,然后输入g(也就使go)执行程序。

论坛徽章:
0
9 [报告]
发表于 2007-06-11 16:24 |只看该作者
mov dx, 0109这一句,由于不知道字符串的首地址在那里,所以开始时随便数一个地址,比如mov dx, 0200
大哥我就是怎么写的
mov dx, [0200]但是他没有打印出字符串

论坛徽章:
0
10 [报告]
发表于 2007-06-11 16:41 |只看该作者
看图。确认你的字符串是从数据段的什么地址开始的。

[ 本帖最后由 coldwarm 于 2007-6-11 16:42 编辑 ]

asm.JPG (34.62 KB, 下载次数: 44)

看图

看图
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP