5章高级汇编语言程序设计_1.ppt

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

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档