回 帖 发 新 帖 刷新版面

主题:[讨论]是否可以不学习16位的汇编,直接学习32位的汇编呢??

这两个有什么区别??

回复列表 (共5个回复)

沙发

当然可以。
不过对于新手,16位汇编相对比较容易理解,尤其是其非保护模式下的内存操作很好办。
如果你有高级语言的win32编程经验,完全可以直接学习win32汇编。

板凳

可是可以,只是难度不小,先学习基本概念对你冲击难度很有帮助!
win32汇编和32位汇编不是完全一样的!!!win32汇编平台是由于windows很好的屏蔽了硬件,使得编程难度降低不少,你可以看看80X86平台的汇编程序设计!
32汇编和win32汇编有个很大不同就是使用系统功能,win32汇编靠调用API函数来完成,而在80X86+DOS平台的话就不是那么容易了!

3 楼

2楼的你说的我不太时白,能不能再详细的说一说????谢谢!!!

4 楼

DOS下的32位汇编要求你对CPU内存这些工作方式了解得比较透彻
想什么描述符阿,分页管理机制阿,保护模式实模式切换阿什么的
而WIN32汇编不需要那么深入的知识
因为windows帮你把这些都作了,做成一个个API函数给你调用
至于函数是如何操作CPU,内存的这些都不用你管了

不过最容易入门的应该还是DOS的16位汇编

5 楼

除了以上仁兄所说的以外,窃以为,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]

我来回复

您尚未登录,请登录后再回复。点此登录或注册