- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
汇编语言复习辅导
第三章8086指令系统和寻址方式
应掌握编写一个完整的汇编语言程序所必需的知识及其相应概念:
(1)汇编语言程序的格式
(2)常用伪指令(伪操作)
(3)8086寻址方式
(4)8086指令系统
1汇编语言程序格式.80x86的逻辑段:堆栈段、数据段、附加段、代码段
(1)完整段定义
STSEG SEGMENT ;定义堆栈段
DB64DUP()
STSEG ENDS
DTSEG SEGMENT ;定义数据段
DATA1 DB36H
DATA2 DB4BH
SUM DB
DTSEG ENDS
;-----------------------CDSEG SEGMENT ;定义代码段
MAIN PROCFAR ASSUME CS:CDSEG,DS:DTSEG,SS:STSEG
START: MOV AX,DTSEG MOV DS,AX ;设置数据段地址
MOV AL,DATA1 ;用户程序
MOV BL,DATA2
ADD AL,BL MOV SUM,AL
MOV AH,4CH ;返回DOS
INT 21H
MAIN ENDP
CDSEG ENDS
END START ;汇编完毕(2)简化段格式:
·MODELSMALL ;存储模型
·STACK100H ;定义堆栈段及大小
·DATA ;定义数据段
VAR1DB
·CODE ;定义代码段
MAIN PROCFAR ;定义过程START: MOV DX,@DATA ;设置数据段
MOV DS,AX ;地址
…MOV AX,4COOH ;返回DOS
INT 21H
MAIN ENDP ;过程完毕
END START ;汇编完毕2.常用伪操作
(1)程序构造伪操作
段定义伪操作: 段名 SEGMENT
……段名 ENDS
过程定义伪操作: 过程名PROC[NEAR/FAR]
……过程名ENDP
程序开场和完毕伪操作:TITLE 程序名----程序说明(60个ASCII字符)
END[START]
段分配伪操作:
ASSUMECS:代码段名,DS:数据段名
ASSUMESS:堆栈段名,ES:附加段名
(2)数据类型及数据定义伪操作?ORG指定数据的存储地址或代码段的起始地址
例: ORG 100H例:ORG 100H
DATA1DB100START:MOVAX,BX
?DB 定义字节,其后的数据存储在一个字节中
?DW定义字,对其后的数据分配2个字节,
数据的低8位存放在低字节,高8位存放在高字节
;ListDDExamples00A0 ORG00A0H
00A0 FF030000 DATA13DD1023
00A4 5C960800 DATA14DD101011100B
00A8 F2572A5C DATA15DD
00AC23000 DATA16DD23H,34789H,65533
FDFF0000
?DQ定义4字,为数据分配8个字节单元
?DT定义5字,为压缩的BCD数据分配存储单元
DATB DT
?DUP按照给定的次数来复制某个(某些)操作数
例如: DATCDW 32DUP()
DATD DB5DUP(0,8DUP(1))
?EQU赋值伪操作
COUNT EQU25
COUNTERDBCOUNT
MOVAH,COUNT
TEMP=25
MOVAH,TEMP
TEMP=TEMP+1
MOVAL,TEMP
(3)属性伪操作
?PTR 指定操作数的类型属性
MOVAX,WORDPTRDATB
MOVBL,BYTEPTRDATW
?LABEL定义变量或标号的类型属性
B_DATLABELBYTE
W_DATDW50DUP()
3.8086寻址方式
寻址方式--指令
文档评论(0)