安防之家讯:这里仅讨论简单的程序设计。简单程序设计是没有分支,没有循环的直线运行程序,程序执行按照IP内容自动增加的顺序进行。 【例1】 利用查表法计算平方值。已知0 ~ 9的平方值连续存在以SQTAB开始的存储区域中,求SUR单元内容X的平方值,并放在DIS单元中。假定0≤X≤ 9且为整数。
分析:建立平方表,通过查表完成。
STACK SEGMENT
DB 100 DUP(?)
STACKENDS
DATA SEGMENT
SUR DB?
DIS DB ?
SQTABDB0,1,4,9,16,25,36,49,64,81; 0~9的平方表
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
BEGIN:PUSH DS
MOV AX,0
PUSH AX;保证返回DOS,
MOV AX,DATA
MOV DS,AX;为DS送初值
LEA BX,SQTAB ;以下程序部分完成查表求平方值
MOV AH,0;亦可用查表指令完成(如下程序段)
MOV AL,SUR ;AL=XLEABX, SQTAB
ADD BX,AX; MOVAL, SUR
MOV AL,[BX] ; XLAT
MOV DIS,AL; MOVDIS, AL
CODE ENDS
END BEGIN
【例2】已知Z=(X+Y)-(W+Z),其中X,Y,Z,W均为用压缩BCD码表示的数,写出程序。
分析:这也是一种典型的直线程序,在这里要注意是BCD数相加,要进行十进制调整。具体程序如下:
MOV AL,Z
MOV BL,W
ADD AL,BL
DAA
MOV BL,AL ;BL=(W+Z)
MOV AL,X
MOV DL,Y
ADD AL,DL ;AL=(X+Y)
DAA ;十进制调整
SUBAL,BL ;AL=(X+Y)-(Z+W)
DAS ;十进制调整
MOV Z,AL;结果送Z
安防之家专注于各种家居的安防,监控,防盗,安防监控,安防器材,安防设备的新闻资讯和O2O电商导购服务,敬请登陆安防之家:http://anfang.jc68.com/
















