




免费预览已结束,剩余22页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编语言课件06 汇编语言环境 汇编程序的功能 n汇编程序的功能:将用汇编语言书写的源程序 翻译成功能等价的由机器指令构成的目标代码 程序。 n主要有三个功能 宏展开 词法、句(语)法分析 形成二进制目标文件及其列表文件 上机过程 汇编程序的使用 nml.exe n参数、开关选项 ml /? 帮助提示 表 3.1 例如:/c 仅汇编不链接 /coff 生成coff结构的目标文件(.obj文件) /cp 大小写敏感 /fl 产生列表文件 fm 产生联结映像文件(.map) /sg 在列表文件中列出指令 /zi 设置符号调试信息 上机步骤: 1)在盘上建立一个文件夹(不要用中文,建议d盘) 2)用编辑软件进行编辑后存盘(存入你在d:盘上的文件夹) 3)用ml进行汇编 a、开始-程序附件-命令提示符 进入控制台模式(dos模式) b、输入程序所在盘符,如d:,用cd 命令到你的文 件夹,如: cd test c、输入 ml 文件名.asm,如: ml ex1.asm (此时如果ml不能执行,要设置path,方法: *在命令窗口输入:path 汇编程序所在目录;%path% 例:path c:masm611bin;%path。缺点:每次打开命令 窗要设立 * 在win2000中(实验室教师已设置好): 我的电脑-属性-高级-环境变量-系统变量-path。 找到后修改) 4)运行与测试 d、执行程序,如: ex1 。 (可以用dir命令检查在当前目录下有否有可执行文件,后 坠为exe。del 文件名可以删除指定文件) 汇编语言的源程序结构与书写格式 n一个汇编语言源程序可以包含若干个代 码段、数据段、附加段或堆栈段,段与 段之间的顺序可随意排列。需独立运行 的程序必须包含一个代码段,并指示程 序执行的起始点,一个程序只有一个起 始点。 例 创建一个在屏幕上显示“hello world的程序 我们需要在数据段给出这个字符串,采用字节定义伪指 令 db实现: ;数据段 string db hello, world , 0dh , 0ah ,$ ;定义要显示的字符串 还需要在代码段编写显示字符串的程序: ;代码段 mov dx,offset string ;指定字符串在数据段的偏移地址 mov ah,9 int 21h;利用功能调用显示信息 分别用两种汇编语言的源程序格式书写 这个程序。 1)完整段定义格式 2)简化段定义格式 典型格式: stack segment stack ;定义作为堆栈段的逻辑段,段名stack db 1024 dup(?);分配堆栈段的大小,设置为1024字节 stack ends ;堆栈段结束 data segment ;定义作为数据段的逻辑段,段名data stringdb hello, word ,0dh,0ah,$ data ends;数据段结束 完整段定义格式 code segment ;定义作为代码段的逻辑段,段名 code assume cs:code,ds:data,ss:stack ;确定各个逻辑段的类型 start : mov ax,data;程序开始点 mov ds,ax ;设置d s指向程序数据段的段地址 mov dx,offset string mov ah,9 int 21h ;dos系统调用,在控制台显示字符串 mov ah,4ch int 21h;dos系统调用,结束程序,返回操作系统 code ends;代码段结束 end start;汇编结束,程序开始点为start 栈段经常可以省去,此时使用操 作系统内部提供的内部栈 简化段定义格式 .model small ;定义程序的存储模式(small表示小型模式) .stack 1024 ;定义堆栈段(默认是1kb空间,所以1024可以不写) .data ;定义数据段 string db hello, world , 0dh , 0ah ,$ .code ;定义代码段 start: mov ax,data;程序起始点 mov ds,ax ;设置ds指向用户定义的数据段 mov dx,offset string mov ah,9 int 21h mov ah,4ch int 21h ;程序结束点,返回dos end start ;汇编结束 存储模式 n存储模式(memory model)决定了一个 程序的规模,也确定了子程序调用、指 令转移和数据访问的缺省属性。当使用 简化段定义的源程序格式时,必须有存 储模式 . model语句,且位于所有简化 段定义语句之前。 其格式为: .model 存储模式(p60) .model 存储模式,语言类型,操作系统类型,堆栈选项 存储模式有7种 : tiny模式(微型)类似com格式,代码、数据和堆栈都包 含在一个64k的段内; small模式(小型)代码和数据各分配一个64k的段 (常用模式); compact模式(紧凑型)用于数据量大、代码量小的程序 medium模式(中型)用于代码量大、数据量小的程序 large模式(大型)是较大型程序通常采用的存储模式 huge模式(巨型)与large模式类似,但静态数据存储空间 可以超过64kb flat模式不划分段,用于32位windows系统下编程; model伪指令自动产生程序需要的assume语句。 .stack 大小 堆栈段定义伪指令,stack创建一个堆 栈段,段名是:stack。可选的“大小” 参数指定堆栈段所占存储区的字节数, 默认大小是 1kb。 .data 数据段定义伪指令 . data创建一个数 据段。 .code 段名(p60) 代码段定义伪指令 .code创建一个代 码段,可选的“段名”参数指定该代码 段的段名。如果没有给出段名,则采用 默认段名:在 tiny,small,compact和 flat模式下,默认的代码段名是:_ text;在medium,large和huge模式下, 默认的代码段名是:模块名 _text。 n若采用masm 6.x版本,程序开始和程序 终止可以分别利用其中的 .startup 语 句和 .exit语句,它会自动产生上述代 码,使编程更加方便 .model small ;定义程序的存储模式(small表示小型模式) .stack 1024 ;定义堆栈段(默认是1kb空间,所以1024可以不写) .data ;定义数据段 string db hello, world ,0dh,0ah ,$ .code ;定义代码段 .startup: mov dx,offset string mov ah,9 int 21h .exit ;程序结束点,返回dos end ;汇编结束 .exit汇编翻译成 mov ah,4ch int 21h .startup对应一段设置ds,ss,sp的代码 dbdug简介 ndebug是在dos状态下面供程序员使用的 程序调试工具。 ndebug的主要功能 读写、比较和显示内存地址中的内容 逐指令执行某个程序,追踪程序的执行过程 显示处理器状态 读写文件与磁盘扇区 读写端口中的数值 汇编和反汇编 进入和退出 n进入dos状态下,键入debug ,按 enter键 。则屏幕显示: n符号“”是进入debug的提示符,在该提 示符下可键入任意debug命令。 n debug的退出: 在debug的提示符后输 入q命令,按enter键,则退出debug返 回dos。 数据输入输出 ndebug能够处理的数据为两种: 十六进制数和asc码 ,使用两位十六进制数表示一个字节的内容。在涉及内存 中的数据时,要指定数据所在的内存单元的地址,地址的 输入格式是: 段地址: 位移。 n如果没有输入地址,debug将假定为当前内存段,从位 于地址100h的字节开始。前100h字节保留给程序段前缀 使用。使用四位十六进制数表示地址。 ndebug输入数据时有两种方法: 提示方法和非提示方法。 在提示方法下,输入要求输入数据的命令,后跟保存数据 的地址。执行后可以看到该地址中已有的内容及一个冒号 提示符。此时可以在提示符下输入一个新的值或者按下回 车键或ctrl+c回到“”提示符 常用命令:汇编与反汇编 na命令 格式:a地址 功能:进入汇编状态,等待输入指令。将输入的指令 汇编成机器码输入到内存中。 参数说明:地址指定存放键入汇编语言指令的内存单 元的位置。 除db、dw外,不支持伪指令。连续2次回车退出汇编 状态 nu命令 格式:u起始地址或者地址范围 功能:将内存中的内容转换为汇编语句。 参数说明:起始地址或者地址范围指定要反汇编代 码的起始地址和结束地址,或起始地址和长度。 常用命令:存储器的显示与修改 nd命令 格式:d地址 或d起始地址目的地址 功能:以内存映象方式显示内存中的数据。 参数说明:指定要显示内容的内存单元的起始地址和 结束地址,或起始地址和长度。如果不指定 地址, debug将从以前 d 命令中所指定的地址范围的末尾开 始显示 128个字节的内容;第一次从ds:100处开始显 示。 ne命令 格式:e地址 字节串 或e地址 功能:从指定的地址开始修改内存值。 参数说明:地址指定存放字节串第一个内存的位置 ,字节串是要放入内存单元中的数据。 常用命令:寄存器访问 nr命令 格式:r寄存器 功能:1. 显示单个寄存器的内容,并提供修改 功能。2. 显示所有寄存器内容, 再加上字母标 志位状态以及要执行的下一条指令。3. 显示8 个标志位状态, 并提供修改功能。 参数说明:寄存器指定要显示其内容的寄存 器名。省略时显示所有寄存器的值。 常用命令:执行和单步执行 ng命令 格式:g=起始地址 断点 功能:执行正在调试的程序,当达到断点时停止执行 , 并且显示寄存器标志和下一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医药物流行业当前竞争格局与未来发展趋势分析报告
- 2025年海洋装备制造行业当前发展趋势与投资机遇洞察报告
- 收付业务知识培训课件
- 支付清算知识培训
- 2025年二级建造师考试施工管理真题及答案
- 2025年全国畜牧兽医职业技能资格知识考试题库与答案
- 2025年云南省高校大学《辅导员》招聘考试题库及答案
- 2025年全国中学生生物学联赛试题及答案
- 2025年社会工作者之初级社会工作实务能力测试试卷A卷附答案
- 摩托摔车安全知识培训课件
- 北师大版初中数学八年级下册说课稿
- 档案整理及数字化服务方案
- 领导干部任前谈话记录表
- 助产士门诊临床实践专家共识的构建
- 中国特色社会主义思想概论 课件 第四章 坚持以人民为中心
- 2022工程设计资质标准
- 人员密集场所火灾扑救
- 2023混凝土板桩支护技术规程
- 高中物理-科学探究:感应电流的方向教学设计学情分析教材分析课后反思
- 公路工程施工招标文件
- 电力市场交易体系规则培训PPT
评论
0/150
提交评论