-
2006-08-28
汇编语言程序设计教程汇总,Windows环境下32位汇编语言程序设计,
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://tuenhai.blogbus.com/logs/3162902.html
汇编语言程序设计教程汇总,Windows环境下32位汇编语言程序设计,
tuenhai.com按:准备花一些时间学一下汇编。不求精通,但要对各种编程语言都有所了解,能编很小的程序。汇编语言编程艺术 可到作者主页去下载英文电子版 http://webster.cs.ucr.edu/
部分章节在线阅读:
http://act.it.sohu.com/book/serialize.php?id=531汇编语言编程艺术 网上还可以找到视频教程。比如这里 http://www.so138.com/so/so138.aspx?id=1269 可用讯雷下载。
Windows环境下32位汇编语言程序设计 在线教程:
http://i-boy.net/boynet/books/win32asm-luoyunbin/index.htmWindows环境下32位汇编语言程序设计 第一版电子书:
http://www.infoxa.com/asp/book/xxnr.asp?id=2243Windows环境下32位汇编语言程序设计 作者网站:
http://asm.yeah.netaogo汇编小站:http://www.aogosoft.com/
小木偶的網頁 http://home.educities.edu.tw/wanker742126/
汇编语言之禅 http://www.open-asm.com/index.asp
汇编语言超浓缩教程 http://tech.acnow.net/Html/Program/ASM/ASM_EDU/2006-5/13/163201280.shtml
学习汇编前你应该知道的知识 http://blog.csdn.net/guo_wangwei/archive/2006/03/08/618876.aspx
学汇编的方法 http://blog.csdn.net/ghj1976/archive/2001/04/26/3443.aspx
汇编语言的准备知识 http://www.programfan.com/club/showbbs.asp?id=49284
http://www.programfan.com/club/showbbs.asp?id=49310
Windows 汇编语言编程教程 http://blog.csdn.net/gzfqh/archive/2005/10/30/519402.aspx
学习电脑中有很多缩写,知道缩写的原型,该缩写的含义就不会忘记了。奇怪的是,大略翻了不少汇编教程,很少详细写出缩写的原型,包括王爽的《汇编语言》。大概这些教材把活生生的人当成了机器人。在学习汇编时,见到缩写就在心里快速扫描一下原型,这是学习的一个非常重要的技巧。学习任何东西都要完全屏弃死记硬背,死记是机器的长处,而人之所以高级在于理解。结合缩写原型来学习汇编还有一个好处,就是可以顺便学习巩固一下English, 学习计算机和学习英语同步,一举两得。
在书写时用缩写可以提高效率,但在心里绝对不能用缩写,一定要知道英文缩写的原型。其实,在电光石火间扫描缩写原型,在时间花费上是可以完全忽略的。
寄存器 =Register
80x86(Intel系列)CPU提供了几个通用寄存器。其中包含八个32位寄存器,如下所示,E’代表扩展(extended):
EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP16位数据寄存器:
AH & AL =AX 累加寄存器,常用于运算 助记 Accumulator
BH & BL =BX 基址寄存器,常用于地址索引 助记 Base
CH & CL =CX 计数寄存器,常用于计数 助记 Count
DH & DL =DX 数据寄存器,常用于数据传送。 助记 Data80x86 CPU还提供了八个8位的寄存器,它们的名称如下所示:
AL、AH、BL、BH、CL、CH、DL、DH80x86将16位寄存器重叠于32位寄存器之上,也将8位寄存器重叠于16位寄存器之上。对EAX的修改可能会影响寄存器AL,AH以及AX
应该避免将ESP和EBP寄存器用于一般的计算当中;还应该记住,余下的寄存器在程序中不可以完全互换
保存段地址的段寄存器,
CS =Code Segment 代码段寄存器
DS =Data Segment 数据段寄存器
SS =Stack Segment 堆栈段寄存器
ES =Extra Segment 附加段寄存器具有特殊功能的寄存器
IP =Instruction Pointer 指令指针寄存器,与CS配合使用,可跟踪程序的执行过程
SP =Stack Pointer 堆栈指针,与SS配合使用,可指向目前的堆栈地址
BP =Base Pointer 基址指针寄存器,可用作SS的一个相对基址位置SI =Source Index 源变址寄存器,可用来存放相对于DS段之源变址指针
DI =Destination Index 目的变址寄存器,可用来存放相对于ES段之目的变址指针
FR =Flag Register 标志寄存器段基址(Segment):16位二进制数后面加上四个二进制0,即一个16进制0,变成20位二进制数,可设定1M中任何一个64K段
偏移量(Offset):直接使用16位二进制数,指向段基址中的任何一个地址。如:2222(段基址):3333(偏移量),其实际的20位地址值为:25553
助记符号(Mnemonic Symbols )
U =Unassemble
DB =Define Byte
int =interrupt
80x86支持字节可寻址存储器(byte addressable memory)。因此基本的存储单元就是一个字节8086地址总线有20位,所以CPU拥有达1M的寻址空间,这也是DOS的有效控制范围,而8086能做的运算仅限于处理16位数据,即只有0到64K,所以,必须用分段寻址才能控制整个内存地址。完整的20位地址可分成两部分:
(持续更新中)
随机文章:
HLA简单简单实例 ——《汇编语言编程艺术》 2006-09-03HLA安装与设置——汇编语言教程之《汇编语言编程艺术》 2006-09-01我的第一个汇编小程序 WinExec函数的使用 2006-08-29笔杆子愤青何新 2007-12-04生活中的一朵小浪花——小“诡计” 2006-11-03
收藏到:Del.icio.us
评论