主题:[讨论]是否可以不学习16位的汇编,直接学习32位的汇编呢??
yn8202
[专家分:80] 发布于 2006-07-21 11:20:00
这两个有什么区别??
回复列表 (共5个回复)
沙发
cracker007 [专家分:22140] 发布于 2006-07-21 12:48:00
当然可以。
不过对于新手,16位汇编相对比较容易理解,尤其是其非保护模式下的内存操作很好办。
如果你有高级语言的win32编程经验,完全可以直接学习win32汇编。
板凳
jonhjack [专家分:80] 发布于 2006-07-22 14:49:00
可是可以,只是难度不小,先学习基本概念对你冲击难度很有帮助!
win32汇编和32位汇编不是完全一样的!!!win32汇编平台是由于windows很好的屏蔽了硬件,使得编程难度降低不少,你可以看看80X86平台的汇编程序设计!
32汇编和win32汇编有个很大不同就是使用系统功能,win32汇编靠调用API函数来完成,而在80X86+DOS平台的话就不是那么容易了!
3 楼
yn8202 [专家分:80] 发布于 2006-07-23 08:45:00
2楼的你说的我不太时白,能不能再详细的说一说????谢谢!!!
4 楼
peimichael [专家分:300] 发布于 2006-07-23 14:36:00
DOS下的32位汇编要求你对CPU内存这些工作方式了解得比较透彻
想什么描述符阿,分页管理机制阿,保护模式实模式切换阿什么的
而WIN32汇编不需要那么深入的知识
因为windows帮你把这些都作了,做成一个个API函数给你调用
至于函数是如何操作CPU,内存的这些都不用你管了
不过最容易入门的应该还是DOS的16位汇编
5 楼
liangbch [专家分:1270] 发布于 2006-07-25 22:05:00
除了以上仁兄所说的以外,窃以为,win32asm在寻址方式上更加灵活,不像16位汇编,限制多多。如以下指令在32位汇编是合法的指令,而类似的指令在16位汇编中是非法的指令,不能通过编译.
这些指令是合法的指令,能够通过编译。
mov ebx,[eax]
mov esi,[eax+ecx*4]
mov esi,[ebx*8]
类似的16位指令,是无效的指令,不能通过编译。
mov bx,[ax]
mov si,[ax+cx*4]
mov si,[bx*8]
我来回复