文档详情

8086汇编语言程序设计基本方法.ppt

发布:2017-04-18约3.89千字共23页下载文档
文本预览下载声明
5.6 汇编语言程序设计的基本方法;5.6.1 顺序程序设计;[例1]求两个数的平均值。这两个数分别存放在X单元和Y单元中,而平均值放在Z单元中。源程序编制如下: DATA SEGMENT X DB 8CH Y DB 64H ;赋予初值 Z DB ? ;分配存储空间 DATA ENDS STACK SEGMENT DW 20H DUP(0) ;给堆栈段分配一个 TOP LABLE WORD ;据区共32个字,每个 STACK ENDS ;字的内容均为0 ;CODE SEGMENT MAIN PROC FAR ;定义子程序名为MAIN,类型FAR ASSUME CS:CODE ;把段寄存器和 ASSUME DS:DATA ;段名对应起来 ASSUME SS:STACK START: PUSH DS MOV AX, 0 PUSH AX MOV AX, DATA ;给数据段赋初值 MOV DS, AX MOV AX, STACK MOV SS, AX MOV SP, OFFSET TOP; MOV AL, X ADD AL, Y ;两数低字节相加结果送AL MOV AH, 0 ADC AH, 0 ;两数高字节带进位相加 SHR AX, 1 MOV Z, AL RET MAIN ENDP CODE ENDS END START;例2 编写程序,计算(W-(X*Y+Z-100))/W,其中W、X、Y、Z均为16位带符号数,计算结果的商存入AX,余数存入DX。 例3 把非压缩十进制数DAT1转换为压缩十进制数;例2编写程序,计算(W-(X*Y+Z-100))/W,其中W、X、Y、Z均为16位带符号数,计算结果的商存入AX,余数存入DX。 DATA SEGMENT W DW 268 X DW –73 Y DW 48 Z DW –85 DATA ENDS STACK SEGMENT DW 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV AX,X ;计算X*Y IMUL Y MOV CX,AX ;用CX存储结果低位      MOV BX,DX ;用BX存储结果高位 MOV AX,Z ;计算X*Y+Z;例3 把非压缩十进制数DAT1转换为压缩十进制数。 ·STACK 64H ·DATA DAT1 DW 0908H ;非压缩十进制数0908H ·CODE BEGIN: MOV AX,@DATA MOV DS,AX MOV AX,DAT1 ;AX←0908H MOV CL,4 ;CL ←4 SAL AH,CL ;09字节左移4位,AH=90H ROL AX,CL ;9008H字循环左移4位,AX=0089H ROL AL,CL ;89字节循环左移4位,AL=98H MOV BYTE PTR DAT1,AL
显示全部
相似文档