中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » 网络日志(Blog) » 【Redtek】 个人网志(学习笔记)
« [1] [2] [3] [4] [5] [6] [7] [8] [9] »
作者:
标题: 【Redtek】 个人网志(学习笔记) 上一主题 | 下一主题
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 31 楼』:  

在那个CMD Shell 黑窗口里运行 P.com ~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-16 02:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 32 楼』:  【80x86汇编语言学习笔记】

微软 MASM 6.11 版自带开发IDE工具,可以很方便的编译ASM文件。书上的代码也可以正常编译了~:)
且 MASM 6.11 为微软安装版,故工具很全。而其它网络下载的不同MASM版均为“简版”,照不同的书编译不同的版本非常麻烦。

在此之前,书上的部分代码有的可以在 MASM 5.X版编译,有的出错。
而出错的代码部分可以在 MASM 6.11 版编译,这些 “不兼容” 的现象给自学汇编带来了很多障碍。

附件 1: 1.GIF (2006-12-17 00:09, 46.46 K, 下载附件所需积分 1 点 ,下载次数: 1)




    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-17 00:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 33 楼』:  【80x86汇编语言学习笔记】

下面代码是教程示例代码, Masm 6.11编译通过,Masm 5.0编译不通过。
起初在编译电子教程上示例代码时,怎么都编译不通过。由于无汇编编译经验,找不出来它的问题。

后想起了批处理中常使用中文全角空格做文本对齐技巧,故在“替换”中找到并替换掉了那些为HTML对齐方便而被作者输入的中文空格。

去除了所有中文空格以后,Masm611编译通过。
                    
        CSEG  SEGMENT   'CODE'
              ORG       100H
      START:  LEA       DX, MSG
              MOV       AH, 09H
              INT       21H
              MOV       AX, 4C00H
              INT       21H
         MSG  DB        "HELLO WORLD!$"
        CSEG  ENDS
              END       START
对以上汇编代码的语句不是很明白,所以用Debug实现上面代码的同理功能~:)
C:\MASM611\Redtek>debug
-A
0B05:0100 MOV DX,0100         ;  暂时不知道要输出内容Hello所在地址,先瞎添一个。
0B05:0103 MOV AH,09
0B05:0105 INT 21
0B05:0107 INT 20
0B05:0109 DB "Hello!$"        ;  这回知道了"Hello!"在0109,一会再将0100处改回来。
0B05:0110

-A 0100
0B05:0100 MOV DX,0109         ;  修改0100处代码,将存有"Hello!"字串地址送入DX中。
0B05:0103
-RCX
CX 0000
:10                           ;  编完的.com可执行文件的长度 16 个字节~:)
-N HELLO.COM
-W
Writing 00010 bytes
-Q
上面Debug编完的代码执行后,输出如下:
C:\MASM611\Redtek>hello.com
Hello!
由上面可见Debug做简单短小代码最直接、最方便!~:)
书上以及教程上并没有给出一个最简单的汇编编译器可以编译的.ASM代码和与Debug实现同样功能的对比代码。

而书上所举示例均为片断,而上面所举汇编.asm格式代码也是在第十章(也就是说你几乎都快学完了所有汇编课程)才能见到如何编译。
所以,根本不可能直观了解并一边编译一边揣摩那些指令是如何实现的。

(而且,巧合还是奇怪的事情,居然几本教材上几乎都是编译以及如何编译和完整的一个小代码全在整本书的快结束部分,全互相抄?)

所以,走了一个多星期的弯路将这相同的功能(除那个MOV  AX, 4C00H不实现)的两个不同实现方法总结贴上。

只有这样,一边学一边试着编译和Debug实现,才可以真正掌握一些东西,并少走弯路。


(感谢Lxmxn给我的汇编教学网站地址)

[ Last edited by redtek on 2006-12-16 at 01:09 PM ]



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-17 01:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 34 楼』:  



  Quote:
Originally posted by redtek at 2006-12-15 13:46:
在那个CMD Shell 黑窗口里运行 P.com ~:)


  呵呵,这回行了。可能上次字体颜色比较浅,没有看清楚吧。


2006-12-17 16:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 35 楼』:  

~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-17 22:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 36 楼』:  

redtek兄的讲座精彩极了!欣赏~~

  Quote:
Originally posted by GOTOmsdos at 2006-12-16 00:26:
过来纯支持一下,偶只会操作MBR的汇编
汇编是编程语言的《易经》

偶正在学习“RMB”的汇编^_^



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-12-17 23:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 37 楼』:  

哈哈……今天没出去玩?

我这日志纯粹是为了激励自己再难也必须学下去,能一步一步的看到学习的过程~:)

[ Last edited by redtek on 2006-12-17 at 10:22 AM ]



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-17 23:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 38 楼』:  【80x86汇编语言学习笔记】

[可执行文件带入参数分析]



一直很好奇,一个可执行文件或是一个可运行的文件,它是如何获得我所输入的参数呢?
如: DIR /? ,这个 “/?” 就是我运行Dir时所输入的参数:)


下面的过程是简单用Debug装入了一个可执行文件,后面是我带的参数:“LINE3  COL4”,是两个参数:)

当 COL.COM 程序一启动以后,当前环境变量以及运行时所带的参数均被装入内存并存在这个 .com 文件的 256B之前的内存段内。
.com 文件段是连续存放的,不超过64KB。


(下面是“截屏字符拷贝,有些错位)

  Quote:
C:\TEMP\debug>DEBUG COL.COM LINE3 COL4
-R
AX=0000  BX=0000  CX=000C  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000
DS=0B39  ES=0B39  SS=0B39  CS=0B39  IP=0100   NV UP EI PL NZ NA PO NC
0B39:0100 B402          MOV     AH,02
-S 0000 010C "LINE3"
0B39:005D
0B39:0082
-D 005D
0B39:0050                                                            4C 49 4E                  LIN
0B39:0060  45 33 20 20 20 20 20 20-00 00 00 00 00 43 4F 4C   E3      .....COL
0B39:0070  34 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00   4       ........
0B39:0080  0B 20 4C 49 4E 45 33 20-43 4F 4C 34 0D 45 33 20   . LINE3 COL4.E3
0B39:0090  43 4F 4C 34 0D 50 33 33-30 20 54 33 0D 74 2E 65   COL4.P330 T3.t.e
0B39:00A0  78 65 0D 00 00 00 00 00-00 00 00 00 00 00 00 00   xe..............
0B39:00B0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0B39:00C0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0B39:00D0  00 00 00 00 00 00 00 00-00 00 00 00 00            .............
-Q

[ Last edited by redtek on 2006-12-17 at 03:42 PM ]



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-17 23:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 39 楼』:  

我很佩服兄的热情和毅力,我若如兄般刻苦,也不至于这么菜了。
真不懂你怎么有如此大的精力,涉猎这么广。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-12-17 23:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 40 楼』:  

兄过讲了,我光学这汇编都满脑袋飘星星了,哈哈……



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-17 23:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 41 楼』:  

临走时劝兄一句话,鸡翅薯条之类垃圾食品少吃点,注意身体。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2006-12-17 23:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 42 楼』:  

我也来捧个场儿,兄是个摄影爱好者,呵呵,厉害.....



我今后在论坛的目标就是做个超级坏人!!!
2006-12-18 04:30
查看资料  发短消息 网志  OICQ (329429)  编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 43 楼』:  

有一次买了个像机就一发不可收拾了,越来越发现这东东居然能把想法表达出来,体会那种生命被思想超越的感觉……

等有空一定多拍好看的照片给兄奉上~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-18 04:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 44 楼』:  

ccwan兄说晚了,刚吃完……大冰激淋+咖啡,哈哈哈……



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-18 04:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 45 楼』:  【80x86汇编语言学习笔记】

使用汇编语言显示彩色字符,然后用批处理包装起来实现不生成临时文件的方法:)


[原创][批处理单行显示多种颜色字符]
http://www.cn-dos.net/forum/viewthread.php?tid=25797&fpage=1


原贴写在上面地址了,下面是解释汇编代码的含义。
0B03:0100 MOV,AH,09              ;    09H号功能调用
0B03:0102 MOV,AL,2A              ;    把字符2AH(就是*号的16进制ASCII码)装入AL寄存器
0B03:0104 MOV,BH,00              ;    彩色显示卡支持0~7页,把0页装入BH寄存器
0B03:0106 MOV,BL,0E              ;     把颜色值送入BL寄存器。(黄颜色:1110二进制,转16进制为:0EH
0B03:0108 MOV,CX,0020            ;    这个符号的显示次数20H送入CX.
0B03:010B INT,10                 ;    显示器中断调用10H  
0B03:010D MOV,BL,0A              ;    换一种颜色 (1010绿色,转16进制是AH)
0B03:010F MOV,CX,000A            ;    和上面一样,显示次数
0B03:0112 INT,10
0B03:0114 INT,20                 ;    结束返回
光标任意定位原理也不难,但汇编的基础知识最重要~:)

[ Last edited by redtek on 2006-12-19 at 12:13 PM ]

附件 1: 1.GIF (2006-12-20 01:05, 9.94 K, 下载附件所需积分 1 点 ,下载次数: 1)




    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-19 06:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] [4] [5] [6] [7] [8] [9] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: