这里仅讨论简单的程序设计。简单程序设计是没有分支,没有循环的直线运行程序,程序执行按照IP内容自动增加的顺序进行。
【例1】 利用查表法计算平方值。已知0 ~ 9的平方值连续存在以SQTAB开始的存储区域中,求SUR单元内容X的平方值,并放在DIS单元中。假定0≤X≤ 9且为整数。 分析:建立平方表,通过查表完成。 STACK SEGMENT DB 100 DUP(?) STACK ENDS DATA SEGMENT SUR DB ? DIS DB ? SQTAB DB 0,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=X LEA BX, SQTAB ADD BX,AX ; MOV AL, SUR MOV AL,[BX] ; XLAT MOV DIS,AL ; MOV DIS, 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 ;十进制调整 SUB AL,BL ; AL=(X+Y)-(Z+W) DAS ;十进制调整 MOV Z,AL ;结果送Z |
电工学习网 ( )
GMT+8, 2021-12-6 20:45