为什么学汇编,不仅仅是一门编程语言

疯魔症 2009-08-05 04:48:39
个人观点:汇编指令是CPU直接识别的(不算伪指令),学了汇编,可以直接控制硬件,用程序控制物理上的机器。
...全文
313 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
leizhe 2009-08-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cyberexp2008 的回复:]
用01010101010110写吧!!那才叫程序啊??


哈哈

[/Quote]

汇编语言的基于硬件编程比其他语言都强悍,有效率。
用二进制编程,就像你坐在奔驰车上 前面还用2头牛来拉 能跑快吗?
只学汇编语言 远远不够的,汇编语言只是提供了给你能控制硬件的权限--
至于怎么控制、解决实际问题才是最重要的。
fmf1999 2009-08-07
  • 打赏
  • 举报
回复
那不是最原始的吗?
CYBEREXP2008 2009-08-07
  • 打赏
  • 举报
回复
用01010101010110写吧!!那才叫程序啊??


哈哈
goodider 2009-08-06
  • 打赏
  • 举报
回复
汇编只是解决从1 0 变成机器码后人们还是不容易识别,才出现的。应该是这样,如果我没记错。
gzgzlxg 2009-08-06
  • 打赏
  • 举报
回复
汇编语言只不过是机器码的助记符,对于人类的记忆系统来说,助记符的使用明显要容易的多,例如:

机器码 助记符
B8 00 00 00 mov eax, 0
B9 00 00 00 mov ecx, 0
BA 00 00 00 mov edx, 0
BB 00 00 00 mov ebx, 0

助记符明显比机器码容易记忆,并容易书写。
宏汇编是在汇编(助记符)的基础上,加上一些伪指令和用户能自行定义的伪指令(即宏)。
至于编译器本质上就是翻译器,将助记符还原为机器码,当然也包括了伪指令和宏。
同时,在机器安装系统后,运行任何代码都要遵循系统的规则,例如在win32下,可执行文件需要一个PE文件头,这个文件头就是系统规则的体现,而链接器就是干这件事的。链接器根据用户的提示,将编译器产生的裸代码(OBJ文件),根据系统的要求加上各种规则,例如PE文件头,使用了系统库或其他的库,入c库,链接器还要将用户代码和这些具体的库链接。所以,你可以在win32下写一段代码,然后使用32为的link.exe链接生成一个windows下的可执行文件(加入windows的规则),同时你也可以使用dos下的链接器例如doslnk.exe生成一个dos下的可执行文件(加入DOS的规则)。
汇编指令集并不庞大,对于不同的cpu指令集也不同,例如86系列的指令集远比z80系列的指令集简单,尤其是置位和清位指令,86系列完全没有提供,需要通过与或运算来完成。所以汇编语言的学习并不是想象的那样困难,这几天有位老兄要别人见证8天学汇编,现在还没有具体结果。别人怎样我不知道,至少当年(1983年)我在研究所工作时正遇上全国计算机普及教育,于是抽空学了几天(不到7天),后来在84年即独立开发了工业控制系统。当时的环境和现在根本没有办法比的,没有网络,没有资料,也没有人可以问。
汇编语言的学习最重要的就是将指令集分类,其实也没有多少:
1、移动类:即 mov 类 mov movs
2、加减类:即 add adc sub sbb
3、乘除类:即 mul imul div idiv
4、与或类:即 and xor or not neg
5、指针加减:即inc dec
6、标志位清置:即 CLD STD(方向标志),CLI STI(中断标志),等等..
7、无转移类:即 jmp (call ret)
8、比较类:即 cmp test
9、有条件转移类:即 ja jb jg jl 等
10、加载数据指针类:即 lea lds
11、输入输出:即 in out
12、堆栈操作:即 push pop
13、位移操作:即 shr shl rcl rcr 等
14、操作 GDT、LDT 类:即 LGDT LIDT SGDT SIDT 等..
15、交换:即 xchg
16、查表:即 xlat
17、循环组合:即 rep repe repne
还有一些杂类,最主要的就是这些了。
将每个类中弄几个玩玩,就这么多,你认为要学多久,一天足亦,哈哈。
当然要学好汇编,不能脱离规则,也就是系统的支持,你不看那些yy玄幻小说,说成神的关键就在掌握规则的多少,哈哈,其实学好汇编不难,就那么几个指令,难的是成神,即掌握规则,更近一步,掌握法则。

BAYNPU 2009-08-06
  • 打赏
  • 举报
回复
汇编语言是一种符号语言,比机器语言容易理解和掌握、也容易调试和维护。不过汇编语言本质上还是机器语言,还是一种面向机器的低级程序设计语言。
willflyz 2009-08-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 gzgzlxg 的回复:]
别人怎样我不知道,至少当年(1983年)我在研究所工作时正遇上全国计算机普及教育,于是抽空学了几天(不到7天),后来在84年即独立开发了工业控制系统
[/Quote]
83年就开始学汇编了,老前辈啊!
onlyjia 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 zwb0540822 的回复:]
个人观点:汇编指令是CPU直接识别的(不算伪指令),学了汇编,可以直接控制硬件,用程序控制物理上的机器。
[/Quote]

先看这帖子 :
http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=free&kind=1220&qkSg=2&qID=10793&readSg=1
DarkChampion 2009-08-05
  • 打赏
  • 举报
回复
CPU识别的是机器码

万丈高楼平地起,汇编是基础中的基础
djking1986 2009-08-05
  • 打赏
  • 举报
回复
写汇编主要是为了更好的了解计算机 了解计算机的硬件结构 直接控制计算机的硬件 也可以通过计算机的结果延伸了解相似的控制器结构 编写控制器程序(嵌入式) 也是个人观点。
疯魔症 2009-08-05
  • 打赏
  • 举报
回复
不认为用汇编写windows程序

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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