谁对“机器语言比汇编语言牛”这个问题感兴趣,进来。

Promi 2010-03-13 01:41:03
在 cmd 下打开 debug 。

-
# 写字符串到内存
-e 150 " Hello, CSDNer ", a, d, '$'
-
# 开始写汇编
-a 100
0B31:0100 mov dx, 150
0B31:0103 xor ax, ax
0B31:0105 mov ah, 9
0B31:0107 mov cx, 6
0B31:010A int 21
0B31:010C dec cx
0B31:010D jnz 10A
0B31:010F int 20
0B31:0111
-
# 反汇编
-u 100
#段 :偏移 机器码 汇编码
0B31:0100 BA5001 MOV DX,0150
0B31:0103 31C0 XOR AX,AX
0B31:0105 B409 MOV AH,09
0B31:0107 B90600 MOV CX,0006
0B31:010A CD21 INT 21
0B31:010C 49 DEC CX
0B31:010D 75FB JNZ 010A
0B31:010F CD20 INT 20
0B31:0111 EBCE JMP 00E1
0B31:0113 E82B00 CALL 0141
0B31:0116 E8B4DF CALL E0CD
0B31:0119 06 PUSH ES
0B31:011A 57 PUSH DI
0B31:011B 51 PUSH CX
0B31:011C 3400 XOR AL,00
0B31:011E 200B AND [BP+DI],CL
-
# 查看寄存器
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B31 ES=0B31 SS=0B31 CS=0B31 IP=0100 NV UP EI PL NZ NA PO NC
0B31:0100 BA5001 MOV DX,0150
-
# 运行
-g
Hello, CSDNer
Hello, CSDNer
Hello, CSDNer
Hello, CSDNer
Hello, CSDNer
Hello, CSDNer

Program terminated normally
-

我的结论: 纯汇编指令几乎等于机器语言,宏汇编也只是刚刚脱离低级而已。

静等回复,看到有含金量的,帖子加分。
...全文
283 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
Promi 2010-03-18
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 mimmmme 的回复:]

是中国人就看完...
[/Quote]

下班前居然看到这个。。。
mimmmme 2010-03-18
  • 打赏
  • 举报
回复
是中国人就看完...
guxiangdefeng 2010-03-15
  • 打赏
  • 举报
回复
埃及法老说,我一个指令就能让金字塔造起来。。。。。。
WizardOz 2010-03-15
  • 打赏
  • 举报
回复
为什么“汇编器”不叫“编译器”而叫“汇编器”呢?
我觉得正是因为汇编语言不需要编译,它跟机器语言是一一对应的……
q512362091 2010-03-15
  • 打赏
  • 举报
回复
21楼的 帖子 有才 NB啊 3进制都出来了
tan870426 2010-03-15
  • 打赏
  • 举报
回复
个人感觉直接写二进制的01比较牛逼!
_JeffreyWu 2010-03-15
  • 打赏
  • 举报
回复
小鸟接分
raphaelcheung 2010-03-15
  • 打赏
  • 举报
回复
我喜欢汇编~~~~
但仅仅熟悉MMX,对SSE有点了解
Promi 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 cxz003 的回复:]

原来机器语言不是一堆 01啊?
[/Quote]

原来十六进制和二进制有这么大差距?
Promi 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 villagehead 的回复:]

0010010101001001000111101010100101
0101010101010101001010101010010100
11100101011101010101100101101001010
1001010101010000101000101010101010

good luck
[/Quote]

你自己觉得你写的这串有意思?

呵呵,我见过更有意思的。

在一个北大青鸟小子发的“二进制”里出现了“2”,那才叫有意思。

http://topic.csdn.net/u/20100210/17/c059f3d0-ac56-4b81-995a-c5248e9e77c6.html
wufanglu 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 villagehead 的回复:]

0010010101001001000111101010100101
0101010101010101001010101010010100
11100101011101010101100101101001010
1001010101010000101000101010101010

good luck
[/Quote]
二进制不是这样写嘀,就像英文句子中单词间有空格一样,一(字)节一节表示,如果写成这样怎么看呀:“thisisanapple”。
wufanglu 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 adong629 的回复:]

这么写会死人的, 我是受不了....
[/Quote]
用宏汇编,把经常用到的东西写成宏或sub,应该没有你们想象中的那么难吧?
当然了,当年我花了大量时间学 汇编、VB6、Delphi5,出来后只用到VB、DP。
villagehead 2010-03-15
  • 打赏
  • 举报
回复
0010010101001001000111101010100101
0101010101010101001010101010010100
11100101011101010101100101101001010
1001010101010000101000101010101010

good luck
wufanglu 2010-03-15
  • 打赏
  • 举报
回复
我看汇编语言比看C语言更清晰,见到C就头大。
当时一直不知造成头大的原因,总觉得大括号难看,后来才发现是C的标点符号太多了。
还好看javascript、C#不头大,它们精简了C中令我头大的标点符号。
jdgh220 2010-03-15
  • 打赏
  • 举报
回复
顶下~~~
汇编语言的却很强大 学好汇编对编程大有好处
adong629 2010-03-15
  • 打赏
  • 举报
回复
这么写会死人的, 我是受不了....
酒剑仙 2010-03-15
  • 打赏
  • 举报
回复
我前两天才看了asm这本书的前5章,太生涩了。我很头痛!
不过的确很nb!
但有什么用呢。用这个东西来做程序的话,会死很多脑细胞的!
  • 打赏
  • 举报
回复
原来机器语言不是一堆 01啊?
Promi 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wizardoz 的回复:]

为什么“汇编器”不叫“编译器”而叫“汇编器”呢?
我觉得正是因为汇编语言不需要编译,它跟机器语言是一一对应的……
[/Quote]

我的意思差不多就是这样,但只是这么一句话恐怕不够瞧,总会有人跳出来反对。

所以我写了反一点汇编来证明这个:BA5001 == MOV DX,0150。用实践争取更多发言权。

我可是真的没有用编译器啊。。。呵呵。
Promi 2010-03-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 raphaelcheung 的回复:]

我喜欢汇编~~~~
但仅仅熟悉MMX,对SSE有点了解
[/Quote]

我也曾经学过MMX和SSE,是在做图像处理的时候,现在几乎忘差不多了。

能做到“熟悉”MMX和SSE的,应该是跟机器争效率比较强悍的人。
加载更多回复(5)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧