- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章-汇编语言程序设计-2课件
宏指令及其使用
宏指令、宏定义和宏调用
宏指令
源程序中具有独立功能的一段程序代码
宏定义
宏指令名 MACRO 形式参数
… ;
… 宏体
… ;
ENDM
宏调用
宏调用的格式为:
宏指令名实际参数 ;例:
1)PUSHREG MACRO
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
ENDM
2)LOADW MACRO PR,VAR
MOV PR,VAR
MOV AX,[PR]
ENDM
3)SHIFT MACRO N,REG,CC
MOV CL,N
SCC REG,CL
ENDM ;MULTIPLY MACRO OPR1,OPR2,RESULT
MOV AL,OPR1
IMUL OPR2
MOV RESULT,AX
ENDM
ADDMULT MACRO REG,VAR1,VAR2
MULTIPLY FIRST 1,FIRST2,MULT1
MULTIPLY SECOND1,SECOND2,MULT2
MOV REG,VAR1
ADD REG,VAR2
MOV SUM,REG
ENDM ;宏定义中的标号与变量
;小结;4.3 汇编语言程序设计
编制汇编程序步骤:
明确任务,确定算法
绘流程图
根据流程图编写汇编语言程序
上机调试程序
程序的基本结构:
顺序结构
分支结构
循环结构
子程序结构 ;编辑源程序;1.顺序程序设计
例:
TITLE EXAMPLE
1 DATA SEGMENT
2 VARX DW 6
3 VARY DW 7
4 RESULT DW ?
5 DATA ENDS
6 STACK1 SEGMENT PARA STACK
7 DW 20H DUP(0)
8 STACK1 ENDS
9 COSEG SEGMENT
10 PROC1 PROC FAR
11 ASSUME CS:COSEG,DS:DATA,SS:STACK1
12 START: PUSH DS
13 MOV AX,0
;续:
14 PUSH AX
15 MOV AX,DATA
16 MOV DS,AX
17 MOV DX,VARX ;DX←X
18 ADD DX,VARY ;DX←(X+Y)
19 MOV CL,3
20 SAL DX,CL ;DX←(X+Y)*8
21 SUB DX,VARX ;DX←(X+Y)*8-X
22 SAR DX,1 ;DX←((X+Y)*8-X)/2
23 MOV RESULT,DX ;存结果
24 RET
25 PROC1 ENDP
26 COSEG ENDS
END START
源程序代码段中:
第15,16语句是为数据段寄存器赋值,让DS指向本程序的数据段DATA。
第17~第23语句完成公式计算并存储结果是代码段中。
第12~第14语句是为用户程序结束,返回DOS操作系统而作的准备。 ;DOS的装入功能 (又称EXEC系统功能)
可执行文件.exe,应装入内存方能执行。
由DOS的装入功能完成。
在DOS的提示符后输入可执行文件的文件名,
按回车键,DOS系统即调用装入功能 ,
将可执行程序装入内存。;当一个用户程序的可执行文件(.EXE)装入内存后,存储器分配情况如图所示 ;完成以下操作:
确定内存可用部分,
以便存放要执行的 .exe 文件。
建立程序段前缀PSP
(Program Segment Prefix)
程序段前缀大小100H,
即256个字节。
存放进程间的控制信息。
PSP最开始的两个字节CD 20,
是一条 INT 20H指令。
装入可执行程序.exe; 修改以下寄存器的值
DS、ES设置为
程序段前缀所在内存的段值;
(DS)=xxxxH
(ES)=xxxxH
SS、SP 设置为
由连接程序传过来的值;
CS、IP 设置为
程序的入口地址,
即伪操作END后跟的
符
文档评论(0)