- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5章高级汇编语言程序设计_1
第 5 章;教学重点;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;5.1 高级语言特性;;汇编语言程序:lt503.asm
.model small
checksumd PROTO c,:word,:word ;声明过程
.stack
.data
array db 12h,25h,0f0h,0a3h,3
db 68h,71h,0cah,0ffh,90h
count equ $-array ;数组的元素个数result db ? ;校验和
.code
.startup
INVOKE checksumd,count,offset array ;调用过程
mov result,al ;保存校验和
.exit 0;checksumd PROC c USES bx cx,\
countp:word,arrayp:word
mov bx,arrayp ;BX←数组的偏移地址
mov cx,countp ;CX←数组的元素个数
xor al,al
sumd: add al,[bx] ;求和:AL←AL+DS:[BX]
inc bx
loop sumd
ret
checksumd endp
end;;lt503.asm的列表文件(lt503.lst)
...
INVOKE checksumd,count,offset array
* mov ax,word ptr OFFSET array
* push ax
* mov ax,+000Ah
* push ax
* call checksumd
* add sp,04h
mov result,al
...;checksumd PROC c USES bx cx,\
countp:word,arrayp:word
* push bp ;起始代码
* mov bp,sp
* push bx ;保护bx和cx
* push cx
mov bx,arrayp ;arrayp=[BP+6]
mov cx,countp ;cuontp=[BP+4]
...
ret
* pop cx ;结尾代码
* pop bx
* pop bp
* ret 0000h
checksumc endp;5.2 宏结构程序设计;宏——具有宏名的一段汇编语句序列
——宏定义时书写
宏指令——这段汇编语句序列的缩写
——宏调用时书写
宏展开——宏指令处用这段宏代替的过程
——宏汇编时实现
宏的参数功能强大,颇具特色
配合宏,还有宏操作符和有关伪指令;宏定义;宏调用;宏展开;宏的参数;;宏定义
shlext macro shloprand,shlnum
push cx
mov cl,shlnum
shl shloprand,cl
pop cx
endm
;宏指令
shlext ax,6
;宏展开
1 push cx
1 mov cl,06
1 shl ax,cl
1 pop cx;;统一4条移位指令的宏指令
shift macro soprand,snum,sopcode
push cx
mov cl,snum
ssopcode soprand,cl
pop cx
endm
;统一移位和循环移位8条指令的宏指令
shrot macro sroprand,srnum,sropcode
push cx
mov cl,srnum
sropcode sroprand,cl
pop cx
endm;;宏定义
dstring macro string
db ’string’,0dh,0ah,’$’
endm
;宏调用
dstring This is a example.
dstring 0 ! Number ! 10
;宏展开
1 db ’This is a example.’, 0dh,0ah,’$’
1 db ’0 Number 10’, 0dh,0ah, ’$’;宏操作符;宏操作符;与宏有关的伪指令;;宏定义
absol macro oprd
local next
cmp oprd,0
jge next
neg oprd
next: nop
endm ;比较;宏与子程序具有各自的特点,程序员应该根据具体问题选择使用那种方法
通常,当程序段较短或要求较快执行时,应选用宏;当程序段较长或为减小目标代码时,要选用子程序;5
您可能关注的文档
- 1章网络.ppt
- 2003_域和活动目录(包括子域名).ppt
- 1章行列式.ppt
- 1章算法_工作概述— 1.5.ppt
- 2003大学物理热学、电学试题.ppt
- 2007秋季体育健康科学论文A.doc
- 2010年计算机网络recitation谶纬 1.ppt
- 1章Dreamweaver CS6创建一个基本的文本页面.ppt
- 2 _ DOCSIS技术概述3。0技术特点_cmts接入技术介绍_1.ppt
- 2010春季计算机网络期末考试试卷.doc
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)