欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    10-11微机原理与应用04.ppt

    • 资源ID:2876993       资源大小:464.02KB        全文页数:46页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    10-11微机原理与应用04.ppt

    ,怎么把程序和数据存入计算机?,就像把饼干放进盒子里面么?,通过汇编软件经过汇编链接形成可执行文件。,汇编语言程序的上机处理过程,主要的汇编程序:MASM,TASM,汇编语言 源程序 (文本文档),汇编软件汇编 MASM,机器语言 目标文件 (.obj),连接软件 link,机器语言 可执行文件 (exe,com),执行程序,汇编语言程序的开发过程,3,第3章 汇编语言基础,3.1 源程序结构 3.1.1 语句格式 3.1.2 程序格式 3.1.3 开发方法 3.2 数据表示 3.2.1 数制 3.2.2 编码 3.2.3 常量表达 3.3 变量应用 3.3.1 变量定义 3.2.2 变量属性,语句格式,程序由语句组成 一个语句常占一行 一个语句不超过132个字符,4个部分 执行性语句:表达处理器指令(硬指令) 标号: 硬指令助记符 操作数,操作数 ;注释 例:first: mov ah, 9 ;使得AH=9 说明性语句:表达伪指令,控制汇编方式 名字 伪指令助记符 参数,参数,;注释 例: msg db 'Hello, Assembly !',13,10, '$',标号与名字,标号:执行性语句中 冒号分隔 反映处理器指令在主存中的逻辑地址 名字:说明性语句中 空格或制表符分隔 表示变量名、逻辑段名、子程序名等 反映变量、逻辑段和子程序等的逻辑地址,标号和名字是用户自定义的标识符,标识符(Identifier),最多由31个字母、数字及规定的特殊符号(如 _、$、?、)组成,不能以数字开头 一个源程序中,用户定义的每个标识符必须唯一 不能是汇编程序采用的保留字 保留字(Reserved Word)是编程语言本身需要使用的各种具有特定含义的标识符、也称为关键字 硬指令助记符 MOV 伪指令助记符 DB 操作符 OFFSET 寄存器名 EAX 预定义符号 data,取名原则类似高级语言 但不区别大小写字母,硬指令,助记符:帮助记忆指令功能的符号 硬指令助记符对应处理器指令,表示一种操作 数据传送指令 mov ah,9 ;使得AH9 助记符:MOV(取自Move) 功能:将源操作数传送至目的操作数 将数字9传送到AH寄存器中的指令,伪指令,伪指令助记符对应指示符,表达一个汇编命令 字节变量定义伪指令 助记符:DB(取自Define Byte) 功能:在主存中占用若干的存储空间,用于保存变量值,该变量以字节为单位存取 变量名MSG包含有段地址和偏移地址 操作符OFFSET获得偏移地址 mov dx, offset msg ;DX获得msg的偏移地址 操作符SEG获得段地址 mov dx, seg msg ;DX获得msg的段地址,操作数与参数,处理器指令的操作数:表示参与操作的对象 一个具体的常量 保存在寄存器的数据 保存在存储器中的变量 逗号前常是目的操作数,逗号后的常是源操作数 伪指令的参数: 常量、变量名、表达式等 可以有多个,参数之间用逗号分隔,注释与分隔符,语句中分号后的内容是注释 对指令或程序进行说明 汇编程序不对它们做任何处理 注释利于以后阅读,建议养成书写注释的良好习惯 语句的4个组成部分要用分隔符分开 标号后的冒号 注释前的分号 操作数间和参数间的逗号 分隔其他部分通常采用一个或多个空格或制表符 注释使用英文或中文均可,分隔符都是英文标点,例题3-1信息显示程序,在数据段给出这个字符串形式的信息: ;数据段 msg db 'Hello, Assembly !',13,10,'$' ;定义要显示的字符串 在代码段编写显示字符串的程序: ;代码段 mov dx,offset msg ;指定字符串在数据段的偏移地址 mov ah,9 int 21h ;利用功能调用显示信息,简化段定义源程序格式,;example.asm .model small ;定义程序的存储模式 .486 ;说明使用的80x86微处理器指令 .stack ;定义堆栈段 .data ;定义数据段 ;数据定义(数据待填) .code ;定义代码段 .startup ;程序执行起始 ;主程序(指令待填) .exit ;程序执行结束,返回DOS ;子程序(指令待填) end ;汇编结束,存储模式(Memory Model),存储模式决定一个程序的规模 简化段定义源程序格式中,必须有.MODEL语句 .MODEL 存储模式 .MODEL语句确定了程序采用的存储模式 一般的小型程序可以选用SMALL模式 大型程序选择LARGE模式 TINY模式创建COM程序,其他模式产生EXE程序 FLAT模式用于32位程序中,不能在DOS环境执行,COM程序只有一个逻辑段(不超过64KB),逻辑段定义,堆栈段定义伪指令.STACK创建一个堆栈段 段名:STACK,程序中可用STACK表示 默认是1KB(1024400H字节)空间 数据段定义伪指令.DATA创建一个数据段 段名:DATA,程序中可用DATA表示 代码段定义伪指令.CODE创建一个代码段 默认段名:TEXT,程序中可用CODE表示,处理器选择伪指令,缺省情况只汇编16位8086指令集 利用32位寄存器完成32位操作,必须加上.386及以上处理器的选择伪指令 留心.386及以后的处理器选择伪指令的位置 在存储模式MODEL指令之后,默认采用16位段 在存储模式MODEL指令之前,默认采用32位段,简化段定义源程序格式,;example.asm .model small ;定义程序的存储模式 .486 ;说明使用的80x86微处理器指令 .stack ;定义堆栈段 .data ;定义数据段 ;数据定义(数据待填) .code ;定义代码段 .startup ;程序执行起始 ;主程序(指令待填) .exit ;程序执行结束,返回DOS ;子程序(指令待填) end ;汇编结束,.startup替换为: start: mov ax,data mov ds,ax,.exit替换为 mov ah,4ch Int 21h,DOS功能调用,MS-DOS操作系统提供给程序员的子程序 调用子程序步骤(类似高级语言调用函数) (1)在AH寄存器中设置系统功能调用号 (2)在指定寄存器中设置入口参数 (3)中断调用指令“INT 21H”执行功能 (4)根据出口参数分析功能调用执行情况,字符串显示功能调用,主存的字符串以“$”作为结尾符 类似C/C+语言中隐含用NULL作为字符串结尾,汇编结束(end语句),翻译源程序成目标模块的过程到此结束 源程序的最后必须有一条END语句 汇编程序不处理END指令之后的任何内容 END伪指令后面可以有一个“标号”参数 指定程序开始执行于该标号所指示的指令 end start,执行结束汇编结束,程序完整框架,(1) SEGMENT/ENDS伪指令。伪指令SEGMENT和ENDS总是成对使用的。用这对伪指令来指定段的名称和范围。 段名 SEGMENT 本段程序内容(指令语句或伪指令语句) 段名 ENDS 从SEGMENT伪指令之后出现的指令和伪指令都被认为是在该段之内, 直至ENDS出现为止。,当用于定义数据段、附加数据段和堆栈段时,处于SEGMENT/ENDS伪指令中间的语句,只能包括伪指令语句,不能包括指令语句,一般格式为 段名 SEGMENT 数据定义,存储单元分配等伪指令语句 段名 ENDS 当由SEGMENT/ENDS定义代码段时,中间的语句可包括指令语句和与指令有关的伪指令语句。一般格式为 段名 SEGMENT 指令语句和与伪指令有关的伪指令语句 段名 ENDS,所定义段的名称。段名是标识符,同一段的SEGMENT/ENDS 伪指令前的段名必须一致。,STACK_SEG SEGMENT STACK_SEG ENDS,定义堆栈段,ASSUME伪指令。ASSUME伪指令语句用来告诉汇编程序在指令执行期间内存的哪一段是数据段,哪一段是堆栈段, 哪一段是代码段。 ASSUME伪指令语句的格式如下: ASSUME 段寄存器名:段名符, 段寄存器名: 段名符, 上述格式中 内的内容可有可无。 例如: ASSUME CS: MYCODE, DS: MYDATA ASSUME ES: MYEXTRA, SS: MYSTACK,MYCODE SEGMENT ASSUME CS: MYCOED, DS: MYDATA, ES: MYEXTRA, SS: MYSTACK START: MOV AX, MYDATA MOV DS, AX MOV AX, MYEXTRA MOV ES, AX MOV AX, MYSTACK MOV SS, AX MOV AH,4CH INT 21H MYCODE ENDS END START,二进制数,便于计算机存储及物理实现 特点:逢二进一,由0和1两个数码组成,基数为2,各个位权以2k表示 二进制数: anan-1a1a0.b1b2bm an×2nan-1×2n-1a1×21a0×20 b1×2-1b2×2-2bm×2-m 其中ai,bj非0即1,十六进制数,用于表达二进制数,相互转换简单 基数16,逢16进位,位权为16k,16个数码: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 十六进制数: anan-1a1a0.b1b2bm an×16nan-1×16n-1a1×161 a0×160 b1×16-1b2×16-2bm×16-m 其中ai,bj是0F中的一个数码,常用进位计数制对照表,2 的次幂的缩简表,1K=210 ,1M=220,1G=230,1T=240,二进制数或十六进制数转换为十进制数,方法:按权展开 二进制数转换为十进制数 0011.1010B 1×211×201×2-10×2-21×2-3 3.625 十六进制数转换为十进制数 1.2H 1×1602×161 1.125,十进制整数转换为二或十六进制数,整数部分转换:用除法 十进制数整数部分不断除以基数2或16,并记下余数,直到商为0为止 由最后一个余数起逆向取各个余数,则为转换成的二进制和十六进制数 12601111110B 1267EH,十进制小数转换为二或十六进制数,小数部分转换:用乘法 分别乘以各自的基数,记录整数部分,直到小数部分为0为止 0.81250.1101B 0.81250.DH 小数转换会发生总是无法乘到为0的情况 可选取一定位数(精度) 将产生无法避免的转换误差,十六进制数的加减运算,二进制和十六进制数之间具有对应关系 整数从左向右 小数从右向左 每4个二进制位对应一个十六进制位 00111010B3AH,F2H11110010B 十六进制数的加减运算类似十进制 逢16进位1,借1当16 23D9H94BEHB897H A59FH62B8H42E7H,计算机中的常用数据类型;,计算机中对实际数据有特殊的表示方法; 整数分带符号数和无符号数两种; 无符号数:字节、字、双字整数操作数中,对应的 8 位、 16 位、 32 位二进制数全部用来表示数值本身。 没有用来表示符号位的位, 因而为正整数。,无符号整数,MSB (Most Significant Bit):最高有效位,真值和机器数,真值:现实中真实的数值 机器数:计算机中用0和1数码组合表达的数值 定点数:固定小数点的位置表达数值的机器数 定点整数:将小数点固定在机器数的最右侧表达的整数 定点小数:将小数点固定在机器数的最左侧表达的小数 浮点数:小数点浮动表达的实数 无符号数:只表达0和正整数的定点整数 有符号数:表达负整数、0和正整数的定点整数 符号位需要占用一个位 常用机器数的最高位 0表示正数、1表示负数,正数的原码表示: 设X=+Xn-2Xn-3X1X0 (即n-1 位二进制正数),则 X原=0Xn-2Xn-3X10,负数的原码表示 设X= -Xn-2Xn-3X1X0 (即n-1 位二进制负数),则 X原=1Xn-2Xn-3X10=2n-1+Xn-2Xn-3X1X0 =2n-1-(-Xn-2Xn-3X1X0)=2n-1-X 注意:在这里我们一般假设n=8。,原码,零的原码表示 在二进制数原码表示中有正零和负零之分, 即 +0原=00000 -0原=10000 原码定义:,X原=,(n位二进制数, 最高位为符号位),X X0 2 n-1-X X0,例1.2:求 X+18 和 Y-18 的原码。 解: X的真值+0010010,根据原码的定义, X原00010010; Y的真值-0010010,根据原码的定义, Y原10010010。,表示范围: n位原码能够表示的数值的范围为: -(2n-1-1)+(2n-1-1), 即-011.1011.1。,反码 反码的定义,X反=,X 0 X 2n-1-1 2 n-1+X (2n-1-1) X 0,表示范围:n位反码能够表示的数值的范围为:-(2n-1-1)(2n-1-1),(n位二进制数, 最高位为符号位),同样,0的反码也是不惟一的: +0反00000000,-0反11111111。,例1.3:求 X52 和 Y-52 的反码。 解: X的真值0110100, 因为X0, 所以有X反X原00110100; Y的真值-0110100, 因为Y0, 所以根据反码表示方法,有Y反 = 11001011。,补码 补码的定义,X补=,X 0 X 2n-1-1, 2 n+X - 2n-1 X0。,表示范围:n位补码能够表示的数值的范围为:-2n-1(2n-1-1) 注意:与原码和反码不同,0的补码是惟一的。,(n位二进制数, 最高位为符号位),例1.4:求 X52 和 Y52 的补码。 解: X的真值0110100, 因为X0, 所以 X补X反X原00110100; Y的真值0110100, 因为Y0, 所以 Y补Y反111001011111001100。,原码、补码和反码 根据X补及X反的定义式得如下关系: 当X为正数时,X反=X补=X原=X; 当X为负数时,X反是将X原的符号位保持不变,其余各位变反;X补则是将X原的符号位保持不变,其余各位变反加 1。,BCD码(Binary Coded Decimal),二进制编码的十进制数 一个十进制数位用4位二进制编码来表示 常用8421 BCD码:低10个4位二进制编码表示09 压缩BCD码:一个字节表达两位BCD码 非压缩BCD码:一个字节表达一位BCD码(低4位表达数值,高4位常设置为0) BCD码很直观 BCD码:0100 1001 0111 1000.0001 0100 1001 十进制真值: 4978.149,BCD码便于输入输出,表达数值准确,ASCII码(美国标准信息交换码),标准ASCII码用7位二进制编码,有128个 不可显示的控制字符:前32个和最后一个编码 回车CR:0DH 换行LF:0AH 响铃BEL:07H 可显示和打印的字符:20H后的94个编码 数码09:30H39H 大写字母AZ:41H5AH 小写字母az:61H7AH 空格:20H 扩展ASCII码:最高D7位为1,表达制表符号,

    注意事项

    本文(10-11微机原理与应用04.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开