- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机硬件技术础大纲_03
汇编语言程序设计
§1 汇编语言初步
汇编过程及工具
编辑(汇编(连接(运行
调试程序DEBUG
宏汇编基本语法
汇编源程序结构
程序={块1[数据段、堆栈段、代码段(过程1()],块2(}
过程={指示性语句,指令性语句}
指示性语句格式:
[名字] 伪指令 [操作数] [;注释]
指令性语句格式:
[标号:] [前缀]指令助记符 [操作数] [;注释]
例子
DATA SEGMENT
SUM DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
PORT EQU 3
MAIN PROC
GO: MOV AX,DATA
MOV DS,AX
MOV SUM,0
CYCLE: CMP SUM,100
JNA NODONE
MOV AL,SUM
OUT PORT,AL
MOV AH,4CH
INT 21H ;返回DOS
NODONE:IN AL,PORT
ADD SUM,AL
JMP CYCLE
MAIN ENDP
CODE ENDS
END GO
§2 指示性语句
符号赋值定义
EQU
格式: 符号名 EQU 表达式
表达式----值或符号(段前缀、操作数、变址引用、指令名等)
例: CONST EQU 256
DATA EQU ARRAY
AB EQU DS:[BP+8]
M EQU MOV
2.=
格式: 符号名 = 数值
定义常数,且可以重复定义,重新定义后,原来的定义自动作废。
例: A=12H
B=256
数据定义
格式: [变量名] 数据定义伪操作 表达式
数据定义伪操作: DB、DW、DD
表达式: 数值表达式、ASCII表达式、地址表达式
例1:
A DB 10*20
STR1 DW ‘THAT IS ALL!’,0DH,0AH,’$’
DATA1 DW 10 DUP(?)
SUM DW ?
TABLE DB 10 DUP(4 DUP(3),7)
DBPTR DD TABLE
例2: AX 的内容为多少?
X DB ‘AB’
Y DW ‘AB’
MOV AX,‘AB’ ;(AX)=4142H
LEA BX,X
MOV AX,[BX] ;(AX)=4241H
LEA BX,Y
MOV AX,[BX] ;(AX)=4142H
例3: 数组累加和
XY DW …
MOV AX,XY
MOV DX,0
MOV BX,0
K1: ADD BX,2
ADD AX,XY[BX]
ADC DX,0
CMP BX,38
JNE K1
段、过程、模块定义
段定义
段名 SEGMENT
((
段名 ENDS
过程定义
过程名 PROC
((
过程名 ENDP
模块定义
NAME 模块名
((
END [标号]
或者 TITLE 模块名
若没有任何标名,则以原文件名为模块名。
ASSUME
格式: ASSUME CS:段名,DS:段名[,SS:段名,ES:段名]
ORG
ORG 表达式
汇编程序从该表达式的值为开始地址为代码段分配存储空间。
运算符
SEG X ;取段址
OFFSET X ;取偏址
PTR ;定类型
运算符优先权(由高到低)
1. [ ],结构变量域,LENGTH,SIZE,WIDTH,MASK
段前缀的名:
PTR,OFFSET,SEG,TYPE,THIS,段前缀
HIGH,LOW
*,/,MOD,SHL,SHR
+,-
关系运算符 EQ,NE,LT,LE,GT,GE
逻辑运算 NOT,AND,OR,XOR
SHORT
§3 汇编语言程序设计概述
判断程序质量的标准
程序正确、完整
程序易读(注释,说明)
程序执行时间
程序所占空间及行数
程序流程
规定
常见流程
顺序 分支 循环 子程序模块
§4 键盘输入与数据显示
键盘输入
键盘DOS操作
AH 功 能 入口参数 出口参数 1 键入一字符,并回显,遇∧Brea
文档评论(0)