- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何学习汇编
2009-5-19 9:13:51 编辑:福建精才网
?1. 学汇编的方法?应该具备的条件:--微机(80X86型微机)
?--MSDOS操作系统或Win95/98的 MS-DOS方式
?-- 编程工具: 文本编辑器: 如 MS-DOS 的 EDIT汇编器: 如 MASM.EXE 5.0 版本连接器: 如 LINK.EXE二进制转换: 如 EXE2BIN.EXE?学习汇编语言实践性很强。只有经过编写大量代码才能熟练掌握。此外阅读源程序也很有帮助。? 由于汇编语言是与 CPU 芯片紧密相关的,所以必须针对某一机型,清楚地了解 CPU 芯片及其外围? 设备的硬件资料。只有这样,编写代码才能得心应手。所以有两类资料需要你去积累:一类是硬件? 方面的资料和系统软件方面的资料,另一类是算法方面的经验。其他比如汇编工具等则没有多少东? 西需要深究。? 第一类资料,比如 各种 BIOS 中断,MS-DOS 功能调用,Windows API 库,这些可以归为系统? 软件方面;而 CPU 结构,端口定义,中断定义,总线方式等可归为硬件资料。? 第二类资料,比如排序算法,字符串查找算法等。像搜索引擎所采用的算法,能在最短的时间? 内,找出符合条件的信息,而且还带有智能性。这种查找方案包含了很科学的算法。它们都是抽象? 的东西。? 总之,学习汇编,你应该目的明确,而且目标机器明确,要解决的问题也明确。这样才能有? 的放矢,最终有所收获。?2 汇编语言基础 基本指令?我们学习的对象机器是 PC 机,CPU 是 Intel80x86,所以先熟悉 CPU? 的大致结构。?其实经常用到的是 CPU 的各个寄存器,其他比如引脚,内部结构等,开始时先不去管它。?由于Intel80x86 各版本 CPU 新的与旧的保持兼容,旧的 CPU 下设计的程序无需任何修改就能在?新的CPU 下运行。Intel 8086/8088 的 所有寄存器在后来的 新版本 CPU 中都保持。它们也是最?基本的 CPU 寄存器。 所以主要学习 Intel 8086 CPU 的寄存器:? 加法器 AX (AH/AL)乘法,除法,I/O, 快速的算术运算? 基址寄存器BX (BH/BL) 基址指针 (数据段)? 计数器CX (CH/CL) 循环,重复或位移的计数器? 数据寄存器DX (DH/DL) 乘法,除法,I/O? 源索引SI?? 源串和索引指针? 目标索引DI?? 目标串和索引指针? 基址指针BP?? 栈的基址指针? 栈指针SP?? 栈的当前位置指针? 标志 CPU 标志? 指令指针IP?? 当前指令的内存位置? 代码段CS?? 程序代码段值? 数据段DS?? 程序数据段值? 栈段SS?? 栈操作的段值? 附加段ES?? 程序附加数据段的段值? 其中 CPU 标志寄存器各位的含义如下:?FLAG: (相应的 BIT 为 1 时的含义) ?? CF进位位向目标操作数进位或借位?? PF奇偶校验位? 低字节校验结果为偶校验?? AF辅助进位标志低 4 bits 的进位或借位标志?? ZF零标志结果为零?? SF负数标志结果为负数?? TF单步标志(CPU)转为单步状态?? IF中断标志中断响应打开 (清除时关闭)?? DF方向? 字串操作默认向下(down rather than up)?? OF溢出? 结果过大或过小(for destination)
?? 汇编语言指令主要就是对上述各个寄存器的操作。下面这段代码是一个完整的 COM 型可执行?? 程序文件的代码,经过编译,连接和转换后,能直接执行,结果是在彩色背景下显示一些字符。?? 编译后只有204 Bytes。? ?? (你需要把这段代码完整地复制下来并另存为一个以 ASM为扩展名的文件,例如? mypro1.asm。?? 然后对它进行编译连结和转换,就生成一个名为 mypro1.COM 的可执行文件。你只要在 DOS 命令行?? 敲入 mypro1 加回车就能看到它的执行结果。关于如何编译连结等问题以后再说。你先可以在汇编?? 工作室主页上下载简装工具,使用其中的 TOCOM.BAT [filename] 批处理即可顺利生成COM文件。)? ?? 在这个例子中使用了几类指令:mov 寄存器,立即数;数据传输类mov 内存,寄存器? ;数据传输类push 寄存器 ;堆栈操作: 入栈pop 寄存器? ;堆栈操作: 出栈int 10H ;10H 号 中断 (视频)int 21H ;21H 号 中断 (功能调用)?? 除了这些指令外,还看到:assume? ;假定offset? ;求偏量OR
您可能关注的文档
最近下载
- 从业人员健康管理制度.docx VIP
- 建筑设计防火规范 (1995修订本).doc VIP
- 2025高中信息技术课标.docx
- 一种简单有效的诱导扩增iNKT细胞的方法及应用.pdf VIP
- 委托代采协议书模板.docx VIP
- 智能养老平台接入DeepSeek人工智能AI大模型应用方案【145页WORD】.docx VIP
- 《民航安全检查(安检基础知识)》课件——1-2民航安全检查发展史1.pptx VIP
- 2025航天恒星科技有限公司招聘80+人笔试历年参考题库附带答案详解.pdf
- 高血压危象的急救与护理.pptx VIP
- 2025天津创业环保集团公司面向集团内部招聘笔试高频考点题库试题解析 .pdf
文档评论(0)