《實驗2分支程序設計》由會員分享,可在線閱讀,更多相關(guān)《實驗2分支程序設計(4頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、實驗2 分支程序設計
一、實驗目的:
熟悉運算類指令對標志位的狀態(tài)影響以及標志位狀態(tài)的表示方法;掌握條件轉(zhuǎn)移、無條件轉(zhuǎn)移指令的使用方法。掌握分支程序設計、編寫、調(diào)試和運行的方法。
二、實驗要求:
1、上機前認真分析題意,找出算法,畫出流程圖,依據(jù)流程圖,編好程序。
2、認真調(diào)試程序,對程序可能存在的所有分支都要進行運行,只有這樣才能證明程序的正確性。
三、實驗內(nèi)容
1.判斷X單元數(shù)據(jù)的奇偶性,若為奇數(shù),將Y單元設置為0FFH,若為偶數(shù),將Y單元清0。
程序:
DATA SEGMENT
X DB 52H
Y DB ?
DATA ENDS
COD
2、E SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AL,X
TEST AL,01H
JZ OUSHU
MOV Y,0FFH
JMP LB
OUSHU:MOV Y,00H
LB:MOV AH,4CH
INT 21H
CODE ENDS
END START
對程序進行編譯,連接,運行后,用DEBUG程序進行調(diào)試。用反匯編U命令
可知內(nèi)
3、存首地址為:1415:0,再用命令D查看數(shù)據(jù)在內(nèi)存中的位置:52H
運行命令G后,然后用D查看結(jié)果在內(nèi)存的位置,可以看到結(jié)果為00H
將偶數(shù)52H修改為奇數(shù)51H,在運行程序進行調(diào)試得到結(jié)果如圖:
如圖,結(jié)果符合題意。
2. 設計—個比較兩個8位無符號數(shù)的大小、并把較小的數(shù)存人MIN單元的程序。假設這兩個數(shù)分別存放在FIRST和SECOND單元中。
程序如下:
DATA SEGMENT
FIRST DB 66H
SECOND DB 27H
MIN DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:COD
4、E,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AL,FIRST
MOV AH,SECOND
CMP AL,AH
JA SHU1
MOV MIN,AL
JMP SHU2
SHU1:MOV MIN,AH
SHU2:MOV AH,4CH
INT 21H
CODE ENDS
END START
用U命令查看內(nèi)存首地址為:13E0:0,再用D查看數(shù)據(jù)在內(nèi)存中的位置:
運行G命令后,用D命令查看內(nèi)存結(jié)果:
從上圖
5、看出結(jié)果符合。
3、設在內(nèi)存中連續(xù)存放了5個字型無符號數(shù),試編寫程序求出他們之和。
程序如下:
DATA SEGMENT
TAB DW 0011H,0022H,1111H,1122H,1122H
SUM DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA BX,TAB
MOV AX,[BX]
6、XOR BX,BX
MOV CX,5
LEA SI,TAB
AGAIN:MOV AX,[SI]
ADD BX,AX
LOOP AGAIN
MOV SUM,BX
MOV AH,4CH
INT 21H
CODE ENDS
END START
運行進行DEBUG以調(diào)試,輸入U命令查看內(nèi)存首地址,及D命令:
再輸入G及D命令查看結(jié)果內(nèi)存
由圖上可看到結(jié)果,符合理論值。
四、問題解決及收獲體會
1 DW是對字節(jié)的定義,
2 使用條件轉(zhuǎn)移指令應先判斷是否滿足對應的測試條件
3在debug中的數(shù)據(jù)都是十六進制的數(shù),低字節(jié)在前,高字節(jié)在后