中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » 论坛回收站 » 求一个简单的P处理
作者:
标题: 求一个简单的P处理 上一主题 | 下一主题
loquat
初级用户





积分 81
发帖 80
注册 2009-8-30
状态 离线
『楼 主』:  求一个简单的P处理

我有一个文件,里面每一行的格式都是这样。
0000: 0xA0090590   ;   0: void loopback0()
要求把所有都变成:
0000: 00000000 900509A0   ;   0: void loopback0()

如果有一个行的格式是这样。
开头有分号注释则不做处理。
;wxyz: 0xA0DDEEFF   ;   x: void func()

2010-4-30 13:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 2 楼』:  

楼主应该多贴几行,并说明,哪部分是固定不变的,哪些是变化的。



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-30 15:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
loquat
初级用户





积分 81
发帖 80
注册 2009-8-30
状态 离线
『第 3 楼』:  


0000: 0xA0090590   ;   0: void loopback0()
0004: 0xA0090590   ;   1: void loopback1()
......
;0D4:              ;  35: AlarmClockRing
0B78: 0xA0960AF5   ; 2DE: __thumb void IllumTimeRequest(int TimeMode, int Counter);
上面,每行第一部分都是0000-0004-0008-000C递增的,第一个冒号后有一个空格然后就是一个4字节16进制字符串,要求双位取反并前加'00000000空格'.后面分号后是注释,不作改变.
假如某一行开头是;表示该行注释掉了也不做处理.
其实就是每行分号后的内容都可以忽略不做处理.
当然能保持原状复制出来更好.

[ Last edited by loquat on 2010-4-30 at 16:11 ]

2010-4-30 16:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by Hanyeguxing at 2010-4-30 15:09:
楼主应该多贴几行,并说明,哪部分是固定不变的,哪些是变化的。

- -要求上传样文。




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2010-4-30 17:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
loquat
初级用户





积分 81
发帖 80
注册 2009-8-30
状态 离线
『第 5 楼』:  

吃完饭就上传.
就是这个文件了。。。

要求就是把中间的部分,添加00000000,然后双位取反。。。

[ Last edited by loquat on 2010-4-30 at 18:50 ]

2010-4-30 17:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by loquat at 2010-4-30 13:49:
我有一个文件,里面每一行的格式都是这样。
0000: 0xA0090590   ;   0: void loopback0()
要求把所有都变成:
0000: 00000000 900509A0   ;   0: void loopback0()

如果有 ...


1010 0000 0000 1001 0000 0101 1001 0000
1001 0000 0000 0101 0000 1001 1010 0000
双位取反;)楼主还是用VBS,js,或C......
P处理位运算,(set /? 中可查到位运算),哪就不简单的了。。。。

2010-4-30 17:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
loquat
初级用户





积分 81
发帖 80
注册 2009-8-30
状态 离线
『第 7 楼』:  

vbs也可以的,谁会帮忙写一个?
我不是要做这个P处理,而是用这个文件导入到IDA里面学习东西的。。。

2010-4-30 18:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 8 楼』:  

。。。
他说双位取反
是把地址格式ABCD变成DCBA
(其中ABCD均是2位。)

            0000: 0xA0090590
0000: 00000000 900509A0



S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
2010-4-30 19:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
loquat
初级用户





积分 81
发帖 80
注册 2009-8-30
状态 离线
『第 9 楼』:  

我这个双位取反应该是ABCD <-> CDAB

2010-4-30 19:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 10 楼』:  

- -嘿
fr -ric:"(ab)(cd)" -t:"\2\1"
这样即可实现换位。

fr -ric:"(ab)(cd)" -t:"000000 \2\1"
在前补0

[ Last edited by yishanju on 2010-4-30 at 19:54 ]




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2010-4-30 19:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 11 楼』:  


@echo off&setlocal enabledelayedexpansion
(for /F "eol=# delims=" %%a in (a.txt) do set a=%%a&if "!a:~0,1!"==";" (echo.%%a) else for /F "tokens=1,2* delims=:;" %%b in ("%%a") do set c=%%c&echo.%%b: 00000000 !c:~9^,2!!c:~7^,2!!c:~5^,2!!c:~3^,2!   ;%%d)>b.txt




批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-30 19:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
freeants001
中级用户




积分 330
发帖 244
注册 2006-4-14
来自 湖北
状态 离线
『第 12 楼』:  

忘了前补0,加上;)
sed -e "/^[^;]/s/0x\(..\)\(..\)\(..\)\(..\)/00000000 0x\3\4\1\2/" testfile.txt
[ Last edited by freeants001 on 2010-4-30 at 20:35 ]

2010-4-30 20:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: