這里僅討論簡單的程序設計。簡單程序設計是沒有分支,沒有循環(huán)的直線運行程序,程序執(zhí)行按照ip內容自動增加的順序進行。
【例1】 利用查表法計算平方值。已知0 ~ 9的平方值連續(xù)存在以sqtab開始的存儲區(qū)域中,求sur單元內容x的平方值,并放在dis單元中。假定0≤x≤ 9且為整數(shù)。
分析:建立平方表,通過查表完成。
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?。籥l=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碼表示的數(shù),寫出程序。
分析:這也是一種典型的直線程序,在這里要注意是bcd數(shù)相加,要進行十進制調整。具體程序如下:
mov al,z
mov bl,w
add al,bl
daa
mov bl,al?。籦l=(w+z)
mov al,x
mov dl,y
add al,dl?。籥l=(x+y)
daa??;十進制調整
subal,bl??;al=(x+y)-(z+w)
das??;十進制調整
mov z,al;結果送z