指令与程序教程.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指令与程序教程

第二篇 指令与程序;前言;机器指令——用二进制编码形式下达的指示和命令。 如:1100 1101 0010 0001 ;1E PUSH DS 2BC0 SUB AX,AX 50 PUSH AX B84D14 MOV AX,144D 8ED8 MOV DS,AX ;;Instruction?prefixes:?指令前缀,可选项,每个前缀一个字节,可选0个前缀到4个不等。详细信息参考intel?manual?2.2节 Opcode:?操作码,这是唯一不可省略的项,1到2个字节,在某些情况下会有额外的三个位作为补充opcode,这三个位是ModR/M中的Reg/Opcode,稍后会讲述什么情况下reg/opcode作为opcode的补充操作码 ModR/M?:一共有三个域,mod,reg/opcode,?r/m,?reg/opcode?在特定情况下作为opcode的补充操作码,特定情况下作为第二个操作数寄存器,(这里的特定情况容稍后解释)。 Mod域和R/M域总共5个位,定义了32种寻址方式。可选项。 SIB:定义ModR/M的寻址方式的补充寻址方式,可选项,什么时候选后面再说。 Displacement:偏移,可选,0,1,2,4个字节 Immediate:?立即数,可选,0,1,2,4个字节。;学习要点 正确定义各种符号,熟练使用地址表达式 熟练掌握汇编语言的常用指令 掌握符号指令的寻址方式 汇编语言的格式;;;;2、数值表达式 数字表达式——由常量与运算符组成的有意义的式子,结果为一数值。;1、 标号的三个属性 (1)段地址—定义该标号所在段的段首址 (2)偏移地址—标号所在段的段首址到该标号定义指令的字节距离 (3)类型—NEAR和FAR两种 NEAR—段内调用,FAR—段间调用;2 、标号的定义 标号只在代码段中定义和使用,定义的方式有两种: (1)书写在符号指令前,用:定义,为NEAR类型, NEAR型标号只能在段内使用! 例: CYCLE:MOV AL,[SI] ;定义近标号CYCLE (2)用PROC…ENDP伪指令定义过程名 例:ABC PROC FAR ;定义过程名ABC为FAR型标号 ABC ENDP ;在汇编中都使用变量和地址表达式来表示存储器的地址。 变量是存储器中的数据或数据区的符号表示。 变量名是数据的地址或数据区的首地址。 地址表达式由变量、标号、寄存器,寄存器必须位于[ ]中)、常量和运算符组成。;;;;(1)表达式为常量或数值表达式→存入数值 如:W1 DW 1 (2)表达式为ASCII字符串 →存入ASCII值 如:B1 DW ’AB’ ;用DW定义时,串长不可大于2 B2 DB ’AB$’ ;用DB定义时,串长可大于2 (3)表达式为重复子句 格式:N DUP(表达式) 如:B3 DB 2 DUP(0) B4 DB 2 DUP(5,’A’) ;(4)地址表达式(只适用DW、DD和DF3个伪指令) 格式:[变量名] DW 地址表达式 ;取其偏移地址来初 ;始化变量 [变量名] DD 地址表达式 ;取其偏移地址和段 ;地址来初始化其变量 (5)由以上表达式组成的序列,之间用‘ ,’分隔 B5 DB 1,2,3 B6 DB ’1,2,3’ ; 此行的,不是序列分隔符;W1 DW B2 ;用B2的偏移地址初始化W1变量 B1 DB ?AB$? ;变量B1用A、B、$的ASCII码初始化 W2 DW 1994H D DD EW ;用变量EW的高16位段基址和偏移地址初始D B2 DB 2 DUP(-5,-1) DB 1 DUP(10,?E?) ;重复因子1不能省 DB ?13?,1,3 在附加数据段DATA2中定义的变量如下: EQ DB 1234567890ABCDEFH EW DW ?AB?,?CD? ;用DW定义变量时,长度不超过2个字符;析值操作符 (也称数值会送操作符) 这些操作符把一些特征活存储器地址的一部分作为数值会送。五个析值操作符的简单使用格式如下: SEG 变量名或标号;取出段值 OFFSET 变量名或标号;取出偏移 TYPE 变量名或标号;取出类型(BYTE 1,WORD 2,DW

文档评论(0)

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

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

1亿VIP精品文档

相关文档