[电脑基础知识]汇编语言程序设计.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[电脑基础知识]汇编语言程序设计

例如,变量x的符号函数可用下式表示: y=1 当x>0 y=0 当x=0 y=-1 当x<0 在程序中,要根据x的值给y赋值,如图4-5所示。先把变量x从内存中取出来,执行一次“与”或“或”操作,就可把x值的特征反映到标志位上。于是就可以判断是否等于零,若是(x=0),则令y=0;若否(x≠0),再判断是否小于零,若是,则令y=-1;不是,就令y=1。 SIGEF MOV AX,BUFFER OR AX,AX JE ZERO JNS PLUS MOV BX,0FFH JMP CONT1 ZERO: MOV BX,0 JMP CONT1 PLUS: MOV BX,1 CONT1: 1. 用计数器控制循环 在循环程序中,控制循环的方法因为要求不同而有若干种。最常用的是用计数器控制循环。 例4-2在一串给定个数的数中寻找最大值(或最小值),并且放至指定的存储单元。每个数用16位表示。 NAME SEARCH_MAX DATA SEGMENT BUFFER DW X1,X2,…,Xn COUNT EQU $ - BUFFER MAX DW ? DATA ENDS STACK SEGMENT PAPA STACK′STACK′ DB 64 DUP(?) TOP EQU $ - STACK STACK ENDS CODE SEGMENT START PROC FAR ASSUMECS: CS:CODE,DS: DATA,SS: STACK BEGIN: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV CX,COUNT LEA BX,BUFFER MOV AX,[BX] INC BX DEC CX AGAIN: CMP AX,[BX] JGE NEXT MOV AX,[BX] NEXT: INC BX LOOP AGAIN START ENDP CODE ENDS END BEGIN 2. 多重循环 程序常常在一个循环中包含另一个循环,这就是多重循环,例如多维数组的运算就要用到多重循环。 下面是一个多重循环的例子(没有精确计算延时时间): Delay: MOV DX,3FFH TIME: MOV AX,0FFFFH TIME1: DEC AX NOP JNE TIME1 DEC DX JNE TIME RET 开始 被加数+加数 - AX AX- (10054)和(10055)单元 暂停 初始化: 段地址DS:1000H 被加数指针SI - 50H 加数指针DI - 52H 和的指针BX - 54H 清除AX和CF 被加数- AX MOV AX, 1000H MOV DS, AX ; DS=1000H MOV SI, 0050H ;被加数指针 MOV DI, 0052H ;加数指针 MOV BX, 0054H ;和的指针 CLC ;清CF XOR AX, AX ;清AX MOV AX, [SI] ;取被加数到AX ADD AX, [DI] ;相加运算,AX - AX + [DI] MOV [BX], AX ;存一个字到[BX] HLT ;暂停 4.5.2 分支程序设计 4.5.3 循环程序设计 循环程序:强制CPU重复执行某一指令系列(程序段)的一种程序结构形式。 一般由4部分构成: (1)初始化:建立循环次数计数器,设定变量和存

文档评论(0)

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

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

1亿VIP精品文档

相关文档