汇编程序设计举例.ppt
《汇编程序设计举例.ppt》由会员分享,可在线阅读,更多相关《汇编程序设计举例.ppt(22页珍藏版)》请在课桌文档上搜索。
1、一、顺序结构程序设计,顺序程序设计是没有分支,没有循环的直线运行程序,程序执行按照IP内容自动增加的顺序进行。例1 以BUF为首地址的内存中存有015的平方表。查表求X单元中数(在015之间)的平方值,并送回X单元。分析:建立平方表,通过查表完成。,STACK SEGMENT DB 100 DUP(?)STACK ENDSDATASEGMENT BUF DB 0,1,4,9,16,25,36,49,64,81 DB 100,121,144,169,196,255 X DB 12DATA ENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,START:M
2、OV AX,DATA MOV DS,AX MOV SI,OFFSET BUF;取BUF的偏移量 XOR AX,AX;AX清0 MOV AL,X;取X ADD SI,AX;X平方值的地址 MOV AL,SI;取X的平方值 MOV X,AL MOV AH,4CH INT 21H;返回DOS CODE ENDS END START 若用换码指令,二、分支结构程序设计,分支程序的基本思想是根据逻辑判断的结果来形成程序的分支,如图,若A成立,则执行P1;否则执行P2。,汇编语言对分支结构的支持,8086转移控制指令无条件转移条件转移单条件(位)测试无符号数关系判断带符号数关系判断,条件转移指令 本系统提
3、供了多个条件转移指令,执行这类指令时通过检测由前边指令已设置的标志位确定是否转移,所以它们通常是跟在影响标志的指令之后。这类指令本身并不影响标志。条件转移指令的通用汇编格式:JCC LABEL 范围-128+127,例2 求绝对值 求AX寄存器和BX寄存器中两个无符号数之差的绝对值,结果放在内存(偏移地址为2800)单元中。分析:利用比较指令,判断谁大谁小,然后大数减小数。,CLC SUB AX,BX JC AA MOV DI,2800H MOV DI,AX JMP EXITAA:SUB BX,AX MOV DI,2800H MOV DI,BXEXIT:MOV AH,4CH INT 21H,例
4、3 有一符号函数如下,DATA SEGMENTX DB?Y DB?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV AL,X OR AL,AL JZ ZERO JNS PLUS MOV BL,-1 JMP HALTZERO:MOV BL,0 JMP HALTPLUS:MOV BL,1HALT:MOV Y,BL MOV AH,4CH INT 21HCODE ENDS END START,在上面的程序中,要特别注意其中的两中JMP HALT的使用,从而保证每个分支的完整性。,三、循环程序设计,对于
5、程序中多次、有规律执行的部分,我们通常使用循环结构要重复运行这些部分,使程序有较高的运行效率和可读性。1.循环结构:主要由三部分组成,它们是:循环初值:用于设置开始循环时,循环体所处的初始状态,如循环变量初值,循环体中用到的数据和地址指针等。循环体:重复运行的部分,其中还包含了工作部分和循环控制部分。工作部分进行相应的操作,而循环控制部分则保证在不满足循环条件时,跳出循环。循环结束条件:在循环体中包括了循环结束条件运算部分。每循环一次除了工作部分进行相应的操作外,循环条件部分还要通过运算,得出当前循环的状态,以便在适当的条件下结束循环。,2.循环的类型 循环体的结构依照问题的不同,一般可以分为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编程序 设计 举例

链接地址:https://www.desk33.com/p-257657.html