- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)