汇编语言程序设计课件 第3讲 汇编语言程序设计初步.ppt

汇编语言程序设计课件 第3讲 汇编语言程序设计初步.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三讲 汇编语言程序设计初步 基本概念 程序设计的步骤 简单程序设计 指令的不同执行序列的问题 比较指令 指令学习 本讲小结 1、基本概念 程序 = 指令的有序序列 计算机是通过执行程序来解决问题的 计算机是通过执行指令序列来解决问题的 指令是对计算机完成何种操作及对什么操作的命令,由操作码和操作数两部分组成 操作码:指示计算机所要执行的操作 操作数:指出指令执行操作的过程中所需要的操作数 每种计算机都有一组指令集供用户使用 指令系统 寻址方式:获得操作数的方式 2、程序设计的步骤 分析问题 ? 做什么? 设计解决方法 ? 怎么做? 画出流程图 编写程序 ? 如何实现? 运行调试 让程序能够运行 程序测试 ? 正确吗? 设计总结 3、简单程序设计 简单? 数据结构简单,数据量小 寻址方式简单 任务 计算1+2+3+4的和 一个简单的汇编语言程序 不用乘法指令计算一个数x的14倍 3.1 第一个程序 计算1+2+3+4的和放入AH寄存器 程序段: mov ah,1 ; ah=1 add ah,2 ; ah=ah+2 add ah,3 ; ah=ah+3 add ah,4 ; ah=ah+4 int 20h ; 程序结束 参见教材 mov 指令 add 指令 sub 指令 使用debug编写执行这个程序 运行debug程序 [开始][运行] 进入汇编输入方式(A 命令) A 100 从内存偏移地址100H开始存放程序 依次输入这个程序的每行 最后一行直接回车 察看程序(U 命令) U 100 10b 反汇编从100H到10BH的程序 执行该程序(G 命令) g 从IP开始执行程序 察看寄存器 (R 命令) R 单步执行命令(T命令 / P命令) T P 使用emu8086编写执行这个程序 打开emu8086 新建空白程序 输入该程序 运行 检查ah的内容 单步运行 观察ah的变化 3.2 一个简单的汇编语言程序 程序 mov ax,0123h mov bx,0456h add ax,bx add ax,ax int 20h 在emu8086中执行该程序 假设ax中存放的是x,bx中存放的是y 该程序的结果是什么? 3.3 不用乘法指令计算一个数x (x在cl中)的14倍放入ah寄存器 方法1 14x=8x+4x+2x mov cl,3 mov al,cl add al,al mov bl,al add bl,bl mov cl,bl add cl,cl mov ah,0 add ah,cl add ah,bl add ah,al int 20h 方法2 14x=16x-2x mov cl,3 mov al,cl add al,al add al,al add al,al add al,al add cl,cl mov ah,al sub ah,cl int 20h 4、指令的不同执行序列的问题 在C语言中有如下命令 if (ab) x=a; else x=b; 该命令做什么? 条件语句! 根据条件决定做什么操作 汇编如何实现? 任务 将bx,cx中较大数放入ax 计算1+2+3+…+100的和存入AX中 将AX,BX和CX寄存器中最大数保存在DX中 4.1 将(bx,cx)中较大数放入ax 我们必须比较 bx 和 cx cmp指令 cmp bx,cx 转移指令 jc 标号(小于转移) jmp 标号 程序研究 mov bx,100 mov cx,50 cmp bx,cx ;比较bx和cx jc skip ;bxcx 转移 mov ax,bx jmp end ;跳转 skip: mov ax,cx end: int 20h ;结束 4.2 用流程图表示思想 4.3 能不能简单些? mov cx,-100 mov bx,-50 mov ax,bx cmp cx,ax jc end mov ax,cx end: int 20h 4.4 程序的问题:可以是带符号数吗? mov cx,-100 mov bx,-50 mov ax,bx cmp cx,ax jc end mov ax,cx end: int 20h 4.5 计算1+2+3+…+100的和存入AX中 mov ax,0 mov cx,0 loop: add ax,cx add cx,1 cmp cx,101 jc loop int 20h 4.6 简单程序也可能出错! m

文档评论(0)

3va3x66 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档