欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    汇编语言基础伪指令.ppt

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

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

    汇编语言基础伪指令.ppt

    3.3 3.3 汇编语言基础汇编语言基础(P111)(P111)西安电子科技大学西安电子科技大学 冯育长冯育长 序言计算机语言发展简介 一常量及其数制二、汇编语言语句格式三、伪指令*(重点难点)1硬 件机器语言汇编语言高级语言继 续 计算机语言发展简介计算机语言发展简介 2汇编语言与机器语言的关系汇编语言与机器语言的关系用汇编语言编写的程序称为汇编语言源程序汇编语言源程序MASM.EXE 系统软件系统软件汇编程序汇编程序汇编语言源程序汇编语言源程序.ASM机器语言机器语言目标程序目标程序汇编语言的两种语句类型汇编语言的两种语句类型1.CPU1.CPU指令指令 CPU CPU执行的语句,如执行的语句,如 MOV,ADD MOV,ADD 等等 能够生成目标代码能够生成目标代码2.2.伪指令(指示性语句)伪指令(指示性语句)CPUCPU不不执执行行,而而由由汇汇编编程程序序执执行行的的语语句句,不不生生成成目目标标代码代码.定义逻辑段、指示程序开始和结束等定义逻辑段、指示程序开始和结束等.7一、汇编语言的常量及其数制一、汇编语言的常量及其数制B B 二进制数二进制数D D(或缺省)(或缺省)十进制数十进制数H H 十十六进制数六进制数A A 单引号表示单引号表示ASCIIASCII码(字符串常量)码(字符串常量)用后缀表示常数的数制用后缀表示常数的数制等价如:如:MOV ALMOV AL,0110 0100B0110 0100B MOV AL MOV AL,64H64H MOV AL MOV AL,100100 MOV ALMOV AL,1 1;(;(ALAL)=31H=31H MOV AL MOV AL,0ABH0ABH以以A AF F开头的数,加前导开头的数,加前导0 08允许使用一些简单的允许使用一些简单的常量常量表达式表达式等价如:MOV AL,3+5 MOV AL,16/2 MOV AL,8 9二、汇编语言语句格式二、汇编语言语句格式 标号:标号:助记符助记符 操作数操作数,操作数,操作数 ;注释;注释 表示可选项表示可选项指令的符号地址,指令的符号地址,标号后要有冒号标号后要有冒号注释前加分号注释前加分号根据不同的指令根据不同的指令可有可无,可多可少可有可无,可多可少操作码操作码不可缺省不可缺省1.CPU1.CPU指令语句格式指令语句格式:如如 L1:MOV AL,BL ;数据传送;数据传送10标号由下列字符组成:标号由下列字符组成:1.AZ 或或 az 2.?_ .3.09 但但09不能作为第一个字符不能作为第一个字符L1:MOV AL,BL 字母数字串,字母数字串,大小写不分,大小写不分,不要用保留字不要用保留字合法的标号合法的标号L1:L21:NEXT:LOOP2:EXITagain:非法的标号非法的标号1L:21L:$NEXT:LOOP:11 变量名变量名 助记符助记符 操作数操作数,操作数,操作数 ;注释;注释 变量的符号地址,变量的符号地址,后无冒号后无冒号伪指令助记符伪指令助记符 不可缺省不可缺省2.2.伪指令语句格式伪指令语句格式:指示汇编程序要完成的操作。指示汇编程序要完成的操作。用来定义变量用来定义变量,分配存储单元分配存储单元,指示程序开始和结束等指示程序开始和结束等MASM.EXE1.CPU1.CPU指令语句格式指令语句格式:12三、三、伪指令伪指令CPUCPU不执行,而由汇编程序执行的语句不执行,而由汇编程序执行的语句指示汇编程序(指示汇编程序(MASM.EXEMASM.EXE)要完成的操作。)要完成的操作。用于定义变量、分配存储区、用于定义变量、分配存储区、定义逻辑段、指示程序开始和结束等定义逻辑段、指示程序开始和结束等131 1、定义段的伪指令、定义段的伪指令2 2、定义数据的伪指令、定义数据的伪指令 3 3、变量的属性及属性操作符、变量的属性及属性操作符4 4、定义字符串、定义字符串5 5、问号?及、问号?及DUPDUP在在DBDB和和DWDW的应用的应用重点掌握:重点掌握:n伪指令的格式及实现的操作伪指令的格式及实现的操作n伪指令的应用伪指令的应用141 1、定义段的伪指令定义段的伪指令段名段名 SEGMENTSEGMENT 定位类型定位类型 组合类型组合类型 类别类别 段名段名 ENDSENDS说明段的起始位置,说明段的起始位置,缺省缺省,则起始地址为,则起始地址为 0H0H(段的起始地址能被(段的起始地址能被16 16 整除)整除)说明不同模块中同名段的连接方式说明不同模块中同名段的连接方式缺省缺省,不组合(同名段在逻辑上相互独立),不组合(同名段在逻辑上相互独立)说明说明 段的段的结束结束类别类别相同者,相同者,组合时连续存放,组合时连续存放,不组合时不组合时应应缺省缺省152 2、定义数据的伪指令、定义数据的伪指令n用于定义数据区中变量的类型用于定义数据区中变量的类型 DBDB 定义字节数据定义字节数据 Defin Byte Defin Byte n指令格式:指令格式:变量名变量名 DBDB 数数11,数,数2 2 ;注释;注释 可省略可省略可选可选可有多个可有多个数据项数据项16定义数据段定义数据段DATADATA,其中包含其中包含3 3个变量个变量M M,N N和和SUMSUMDATA DATA SEGMENTSEGMENT M MDB 10HDB 10H N NDB 25HDB 25HSUMSUM DB 0DB 0DATA DATA ENDSENDS 例例1 1 由系统自动为段分配内存,由系统自动为段分配内存,且起始地址一定为且起始地址一定为0 0H HDATA DATA 是程序员指定的数据段段名;是程序员指定的数据段段名;SEGMENT SEGMENT 段的定义伪指令段的定义伪指令段名可以是:段名可以是:DATA2 D1 D2 DATA2 D1 D2 等等定义字节变量定义字节变量ENDENDS S 数据段结束数据段结束 数据由此开始!数据由此开始!1FFFFH1FFFFH20000H20000H20001H20001H20002H20002H17定义数据段定义数据段DATADATA,其中包含其中包含3 3个变量个变量M M,N N和和SUMSUMDATA DATA SEGMENTSEGMENT M MDB 10HDB 10H N NDB 25HDB 25HSUMSUM DB 0DB 0DATA DATA ENDSENDS 例例1 1 由系统自动为段分配内存空间,由系统自动为段分配内存空间,且起始地址一定为且起始地址一定为0 0H HM10H10HN25H25HSUM00H00H 段的起始地址能被段的起始地址能被1616整除整除 每个段最大为每个段最大为64KB64KB 最小视需要而定最小视需要而定要点要点:18CODE CODE SEGMENTSEGMENT ASSUME CSASSUME CS:CODECODE,DSDS:DATADATA STARTSTART:MOV AXMOV AX,DATADATA MOV DS MOV DS,AXAX MOV AL MOV AL,M M ADD AL ADD AL,N N MOV SUM MOV SUM,ALAL CODE CODE ENDSENDS ENDEND STARTSTART 定义代码段定义代码段CODECODE,实现实现 M+N M+NSUMSUMDATA DATA SEGMENTSEGMENT M MDB 10HDB 10H N NDB 25HDB 25HSUMSUM DB 0DB 0DATA DATA ENDSENDS数据段由此开始 CODE CODE 是程序员指定的代码段段名;是程序员指定的代码段段名;SEGMENT SEGMENT 段的定义伪指令段的定义伪指令在代码段开头必须用在代码段开头必须用ASSUMEASSUME指定各段的段寄存器指定各段的段寄存器:CS CS 代码段段寄存器代码段段寄存器,DS DS 数据段段寄存器数据段段寄存器,ES ES 附加段段寄存器附加段段寄存器,SS SS 堆栈段段寄存器堆栈段段寄存器,注意语法格式注意语法格式 lENDENDS S 代码段结束代码段结束lEND END 源程序结束源程序结束l一般在一般在ENDEND之后是第一条指令的标号之后是第一条指令的标号l段名段名DATADATA代表数据段的段地址值,代表数据段的段地址值,用户应完成用户应完成DSDS的初始化,方法固定。的初始化,方法固定。l变量名表征变量的偏移地址变量名表征变量的偏移地址l引用变量名访问变量引用变量名访问变量直接寻址方式直接寻址方式19CODE CODE SEGMENTSEGMENT ASSUME CSASSUME CS:CODECODE,DSDS:DATADATA STARTSTART:MOV AXMOV AX,DATADATA MOV DS MOV DS,AXAX MOV AL MOV AL,M M ADD AL ADD AL,N N MOV SUM MOV SUM,ALAL CODE CODE ENDSENDS ENDEND START START 定义代码段定义代码段CODECODE,实现实现 M+N M+NSUMSUMDATA DATA SEGMENTSEGMENT M MDB 10HDB 10H N NDB 25HDB 25HSUMSUM DB 0DB 0DATA DATA ENDSENDS数据段由此开始 CODE CODE SEGMENTSEGMENT ASSUME CSASSUME CS:CODECODE,DSDS:DATADATA STARTSTART:MOV AXMOV AX,2000H2000H MOV DS MOV DS,AXAX MOV AL MOV AL,0000H0000H ADD AL ADD AL,0001H0001H MOV 0002H MOV 0002H,ALAL CODE CODE ENDSENDS ENDEND START START 设已知地址如图设已知地址如图示,则等价于:示,则等价于:由于地址是由系统自动分配的,故:由于地址是由系统自动分配的,故:l一律用段名代表段地址值,一律用段名代表段地址值,完成完成DSDS的初始化的初始化l用变量名访问变量用变量名访问变量直接寻址方式直接寻址方式20CODE CODE SEGMENTSEGMENT ASSUME CSASSUME CS:CODECODE,DSDS:DATADATA STARTSTART:MOV AXMOV AX,DATADATA MOV DS MOV DS,AXAX MOV AL MOV AL,M M ADD AL ADD AL,N N MOV SUM MOV SUM,ALAL CODE CODE ENDSENDS ENDEND START START 定义代码段定义代码段CODECODE,实现实现 M+N M+NSUMSUMDATA DATA SEGMENTSEGMENT M MDB 10HDB 10H N NDB 25HDB 25HSUMSUM DB 0DB 0DATA DATA ENDSENDS请问请问:数据段由此开始数据段由此开始 代码段的起始地址代码段的起始地址?CS:IP CS:IP 会自动初始化会自动初始化2001H 2001H:0000H 0000H 2135H35H分析程序的运行结果?DATA DATA SEGMENTSEGMENT M MDB 10HDB 10H N NDB 25HDB 25HSUMSUM DB 0DB 0DATA DATA ENDSENDSCODE CODE SEGMENTSEGMENT ASSUME CSASSUME CS:CODECODE,DSDS:DATADATA STARTSTART:MOV AXMOV AX,DATADATA MOV DS MOV DS,AXAX MOV AL MOV AL,M M ADD AL ADD AL,N N MOV SUM MOV SUM,ALAL CODE CODE ENDSENDS ENDEND START START SUM=?SUM=?22 1 1、定义段的伪指令、定义段的伪指令段名段名 SEGMENTSEGMENT 段名段名 ENDSENDS要点归纳要点归纳:n定义段的伪指令定义段的伪指令,n必须成对出现必须成对出现n必须有段名必须有段名ASSUME ASSUME CSCS:CODECODE,DSDS:DATADATA;用在代码段首行,指用在代码段首行,指定段寄存器定段寄存器n段的起始地址由系统自动安排段的起始地址由系统自动安排n段的起始地址能被段的起始地址能被1616整除整除 (段的起始地址一定为段的起始地址一定为0 0H H)nCS:IP CS:IP 会自动初始化会自动初始化n用户应完成其它段用户应完成其它段寄存器和偏移地址寄存器的初始化寄存器和偏移地址寄存器的初始化23 2 2、定义数据的伪指令、定义数据的伪指令DBDB 定义字节数据定义字节数据 Defin ByteDefin Byte归纳归纳:一般格式:一般格式:nDB DB 定义字节数据定义字节数据 D Defin efin B Byte,yte,一个数据占一个数据占1 1个字节个字节nDW DW 定义字数据定义字数据 D Definefin W Wordord,一个数据占一个数据占2 2个字节个字节nDD DD 定义双字数据定义双字数据 D Defin efin D Double word,ouble word,一个数据占一个数据占4 4个字节个字节nDQ 定义的数据为4字型(8字节)nDT 定义的数据为10字节型 变量名变量名 DBDB 数数11,数,数2 2,;注释;注释 其它几个其它几个定义数据的伪指令:定义数据的伪指令:24画出变量在内存中的存放示意图画出变量在内存中的存放示意图D1 D1 SEGMENTSEGMENT M1 M1 DB 1DB 1,2 2 M2 M2 DW 3456HDW 3456H,7 7D1 D1 ENDSENDS 例例2 2 M1M1不再关心段地址的不再关心段地址的具体数值具体数值0101M2M2020256H56H34H34H07H07H00H00Hl第一个变量的偏移地址一定是第一个变量的偏移地址一定是0000H0000Hl其他数据按顺序分配内存其他数据按顺序分配内存25画出变量在内存中的存放示意图画出变量在内存中的存放示意图D1 D1 SEGMENTSEGMENT M1 M1 DB 1DB 1,2 2 M2 M2 DW 3456HDW 3456H,7 7D1 D1 ENDSENDS 例例2 2 M1M1不再关心段地址的不再关心段地址的具体数值具体数值0101M2M2020256H56H34H34H07H07H00H00H请问:变量请问:变量M1M1的字节长度的字节长度=?2 2设设DSDS已初始化,写出指令把已初始化,写出指令把M1M1的第一个数据元素存入的第一个数据元素存入ALALMOV AL,MOV AL,M1M1;直接寻址方式直接寻址方式写出指令把写出指令把M1M1的第二个数据元素存入的第二个数据元素存入BHBHMOV BH,MOV BH,M1+1M1+1;直接寻址直接寻址,M1+1M1+1 称为地址表达式称为地址表达式26画出变量在内存中的存放示意图画出变量在内存中的存放示意图D1 D1 SEGMENTSEGMENT M1 M1 DB 1DB 1,2 2 M2 M2 DW 3456HDW 3456H,7 7D1 D1 ENDSENDS 例例2 2 M1M1不再关心段地址的不再关心段地址的具体数值具体数值0101M2M2020256H56H34H34H07H07H00H00H请问:变量请问:变量M2M2的字节长度的字节长度=?4 4写出指令把写出指令把M2M2的第一个数据元素存入的第一个数据元素存入AXAXMOV AX,M2MOV AX,M2;直接寻址方式直接寻址方式写出指令把写出指令把M2M2的第二个数据元素存入的第二个数据元素存入BXBXMOV BX,M2+MOV BX,M2+2 2;直接寻址直接寻址,M2+,M2+2 2 称为地址表达式称为地址表达式27画出变量在内存中的存放示意图画出变量在内存中的存放示意图D1 D1 SEGMENTSEGMENT M1 M1 DB 1DB 1,2 2 M2 M2 DW 3456HDW 3456H,7 7D1 D1 ENDSENDS M1M1不再关心段地址的不再关心段地址的具体数值具体数值0101M2M2020256H56H34H34H07H07H00H00H写出指令把写出指令把DLDL的中的数据存入的中的数据存入M1M1的首单元的首单元MOV M1,DLMOV M1,DL写出指令把写出指令把DXDX中的数据存入中的数据存入M2M2的首单元的首单元MOV M2MOV M2,DXDXDLDLDLDLDHDH28画出下列变量画出下列变量占用内存空间的示意图。占用内存空间的示意图。D1 D1 SEGMENTSEGMENT DATA_BYTE DATA_BYTE DBDB 10 10,10H,2*16,25510H,2*16,255 DATA_WORD DATA_WORD DWDW 100 100,250H250HD1 D1 ENDSENDS 课堂作业课堂作业1 129画出下列变量画出下列变量占用内存空间的示意图。占用内存空间的示意图。D1 D1 SEGMENTSEGMENT DATA_BYTE DATA_BYTE DBDB 10 10,10H,2*16,25510H,2*16,255 DATA_WORD DATA_WORD DWDW 100 100,250H250HD1 D1 ENDSENDS DATA_BYTEDATA_BYTE0AH0AH10H10H20H20HFFHFFHDATA_WORDDATA_WORD64H64H00H00H50H50H02H02H课堂作业课堂作业1 130分析分析程序的功能程序的功能课堂作业课堂作业2 2DATA SEGMENTDATA SEGMENT X DB 5 X DB 5,1 1,6 6,3 3,4 4,5 5,6 6,0 0,8 8,9 9DATA ENDS DATA ENDS CODE SEGMENTCODE SEGMENTASSUME CSASSUME CS:CODECODE,DSDS:DATADATASTARTSTART:MOV AXMOV AX,DATADATAMOV DSMOV DS,AXAXMOV ALMOV AL,0 0 MOV CXMOV CX,1010MOV BXMOV BX,0000H0000HL1L1:ADD ALADD AL,BX BX;(;(ALAL)(ALAL)+(BXBX)INC BX INC BX ;(;(BXBX)(BXBX)+1+1DEC CXDEC CX ;(;(CXCX)(CXCX)-1-1JNZ L1JNZ L1;若(;若(CXCX)00则转向则转向L1L1HLT HLT ;暂停;暂停(ALAL)=X=X0 0+X+X1 1+X+X9 931数据段的段名为数据段的段名为D2,D2,该段中该段中字节变量字节变量VAR1VAR1中的数据为中的数据为 5 5,1010,-2-2,1111。该段中该段中字变量字变量VAR2VAR2中的数据为中的数据为 5678H 5678H,100100。请写出数据段的程序代码。请写出数据段的程序代码。D2 D2 SEGMENTSEGMENT VAR1 VAR1 DBDB 5,10,-2,11 5,10,-2,11 VAR2 DW 5678H,100 VAR2 DW 5678H,100D2 D2 ENDSENDS 课堂作业课堂作业3 3;或;或D2 D2 SEGMENTSEGMENT VAR1 VAR1 DBDB 5,10 5,10 DBDB-2,11-2,11 VAR2 DW 5678H VAR2 DW 5678H DW 100 DW 100D2 D2 ENDSENDS 32编程,把编程,把VAR1VAR1的第一个数据存入的第一个数据存入ALAL,把把VAR2VAR2的第一个数据存入的第一个数据存入BXBX。请写出代码段。请写出代码段。CODE CODE SEGMENTSEGMENT ASSUME CS:CODE,DS:D2ASSUME CS:CODE,DS:D2START:MOV AX,D2START:MOV AX,D2MOV DS,AXMOV DS,AXMOV AL,VAR1MOV AL,VAR1MOV BX,VAR2MOV BX,VAR2CODE CODE ENDS ENDS 课堂作业课堂作业4 4D2 D2 SEGMENTSEGMENT VAR1 VAR1 DBDB 5,10,-2,11 5,10,-2,11 VAR2 DW 5678H,100 VAR2 DW 5678H,100D2 D2 ENDSENDS 请问:如果把此句去掉,请问:如果把此句去掉,执行执行 MOV AL,VAR1 MOV AL,VAR1 后后ALAL=?33第三章第三章 作业题作业题307307308308307.307.画出变量在内存中的存放示意图。画出变量在内存中的存放示意图。DATA SEGMENTDATA SEGMENTVAR1 DB 12VAR1 DB 12VAR2 DB-5VAR2 DB-5VAR3 DB 0VAR3 DB 0DATA ENDSDATA ENDS308.308.编程,把上题中编程,把上题中VAR1VAR1和和VAR2VAR2单元中的数据相加,结果单元中的数据相加,结果存入存入VAR3VAR3单元。单元。3435

    注意事项

    本文(汇编语言基础伪指令.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开