第一篇:第二次實驗報告
多元統計分析實驗報告
姓名及學號:數101 梁菊麗
201004404116
日期:2012/10/13
1、實驗內容
有一份關于居民儲蓄調查的模擬數據存儲在Excel中,文件名為“居民儲蓄調查數據.xls”。該數據的第一行是變量名。請將該份數據轉換成SPSS數據文件,并在SPSS中指定其變量名標簽和變量值標簽。
2、實驗目的
通過本實驗熟悉SPSS文件建立、數據預處理,特別是掌握在SPSS中讀取其他格式的數據文件的方法。并掌握在SPSS中指定變量名標簽和變量值標簽的方法。
3、實驗方案分析
原數據是存儲在Excel表格中,需要把數據轉換成SPSS數據,SPSS能夠直接讀取其他格式的數據文件,并將其保存為SPSS格式的數據。在SPSS的Variable View 窗口中,根據已給出的文件名為“居民儲蓄調查數據.xls”,實現對變量名標簽和變量值標簽的指定。.4、操作過程
A、在SPSS的Date View窗口中將Excel表格中的文件名為“居民儲蓄調查數據.xls”轉換成SPSS數據:
(1)選擇菜單File→Open→Data;
(2)選擇數據文件的類型為Excel格式,并輸入數據文件名“居民儲蓄調查數據1.xls”。
(3)選擇Open,出現
(4)選擇Continue。
B、在SPSS中指定其變量名標簽和變量值標簽:
(5)選擇Variable View窗口,在Lable欄中,每一格分別輸入“居民儲蓄調查數據1.xls”中給出的15道題目,在Values欄的每一格中,分別輸入“居民儲蓄調查數據1.xls”中的15道題目的選項。操作得到的圖表如下:
(6)選擇Add,在Value中輸入2,在Label中輸入“存錢合算”(7)再選擇Add,最后選擇OK。
其它剩下的題目與選項與此指定方法相同。
5、實驗結果
(。。給出實驗得到的重要結果)
6、討論
(。。對上述得到的結果做出說明與討論)
7、結論
(。。根據以上的討論給出恰當的結論)
第二篇:第二次實驗報告
長春理工大學
匯編語言
實驗 報告
實驗題目:
用 用 G DEBUG 程序調試程序功能段
實驗時間:
2016
年
月
日
實驗地點:
東三教 912
班
級:
1405111
學
號:
140511114
姓
名:
王國偉
一..實驗目的 1.繼續學習使用 DEBUG 程序的各種命令。
2.利用 DEBUG 學習了解計算機取指令、執行指令的工作過程。
3.掌握 8086/8088 基本指令的使用方法和功能。
二..實驗準備
1.G DEBUG 命令
1)G 命令
格式:G[=起始地址] [斷點地址]
功能:從起始地址開始執行到斷點地址,如不設斷點地址,則程序一直執行到終止指令才停止
2)P P 命令
功能:執行匯編程序,單步跟蹤
與 與 T T 命令不同的是:
P 命令不會跟蹤進入子程序或軟中斷。其使用方式與 T T 相同
3)N N 命令
功能:指定文件名。為讀/寫文件做準備
4)W W 命令
功能:向磁盤寫內容
5)L L 命令
功能:從磁盤將文件或扇區內容讀入內存
注意:使用該命令前,必須用 N N 命令設定文件名
三..實驗任務
1.按照下列給定步驟完成求累加和程序: :
程序 :
MOV BX,1000
MOV CX,10
MOV AL,0
LOP: ADD AL,[BX]
INC BX
J: LOOP LOP
INT3
步驟: :
1)用 A 命令將程序鍵入到 100H 開始的內存中,在鍵入時記下標號LOP 和 J 的實際地址,在鍵入 LOOP 指令時 LOP 用實際地址值代替。
LOP:0B50:0108 J:0B50:010B
2)用命令 N AA 將此程序命名為文件 AA(文件名可任取)。
3)用 R 命令將 BX:CX 改為程序長度值(即最后一條指令后面的地址減去開始地址),用 R 命令把 BX 設為:0000H,CX 設為文件長度。
4)用命令 W 100 將此程序存到 AA 命名的磁盤文件中。
5)用命令 Q 退出 DEBUG。
6)用命令 DEBUG AA 再次調入 DEBUG 和文件 AA,可用 U 命令檢查調入程序。
若調入 DEBUG 時忘了加 AA 文件名,可用 N 命令和 L 命令將文件調入。
7)用 E 命令在內存地址 1000H 處鍵入 16 個數字
8)用命令 G=100 J(J 用實際地址代替),使程序運行并停在斷點 J上,檢查
AX,BX 的值是否符合你的預計值。
9)用 T 命令運行一步,觀察程序方向(IP 值)和 CX 值是否與你的估計一樣, 若不一樣,檢查程序是否有錯。
10)重復 G J 與 T,再檢查 AX 是否正確。
(J 為斷點地址)
11)用 G 命令使程序運行到結束,檢查 AX 值是否正確 2.用命令 A A 匯編下列指令,判斷指令正誤并說明原因。
i.LEA DI,[AX]
錯誤,因為 lea 指令傳送的必須為變量名,標號或地址表達式
ii.MOV DS,2010
錯誤,不能將立即數放入數據段中
iii.PUSH AL
錯誤,push 一次壓入 16 位數據,al 只有八位
iv.OUT 900,AL
錯誤,因為當端口地址大于 FFH 的時候應該將端口地址送到dx 中,al 只能
操作八位數
v.MOV [BX],0
錯誤,因為沒有標明是字節傳送還是字傳送
3.利用 T T,P P,G G 命令,執行下列指令段,注意它們的不同之處
MOV DI,300
MOV SI,400
MOV CX,3
CLD
REP MOVSB
INT 3
如果用 G 命令直接中斷,并且顯示寄存器標志和下一條要執行的命令。
T 是執行一個指令,通常采用跟蹤一條指令,但用戶也可以用指令條數設定一次跟蹤多條指令,每執行一條指令之后,顯示所有寄存器的內容和標志狀態以及下一條指令在內存中的保存情況。
P 其實也是執行一條指令,但區別是在執行 INT 的時候會把這個 INT 整個的執行完畢,而不是跳轉到這個中斷程序去跟蹤執行使用 P 命令執行程序,該程序不間斷運行,直到循環、重復字符串指令、軟件中斷或者完成了指定地址的子例程為止,或者直到執行了指定數量的機器指令為止。若被執行的指令不是循環、重復的字符串指令、軟件中斷或子程序,則P 命令與 T(跟蹤)命令的作用相同。
4.程序: :
MOV
DI,1000
MOV CX,8
MOV SI,2000
CLC
LOP:
MOV AL,[SI]
ADC [DI],AL
INC SI
INC DI
LOOP LOP
INT
步驟: :
1)用 A 命令鍵入此程序
2)用 E 命令在 1000H 開始處鍵入一個 8 字節被加數,在 2000H開始處鍵入一個 8 字節加數,均為低字節在前面。
3)用 G 命令運行此程序,并用 D 命令檢查其結果(存放在哪里?),是否正確?
4)將 INT 20H 指令改為 INT 3,有何區別?若這條指令不加,行不行?試
試。
INT 20H 程序終止
INT3 為斷點
5)請說明這個程序完成的功能是什么?
將0b50:1000與0b50:2000對應的地址內的數相加并存入[di]
四.實驗小結
在寫入程序時,應當先讀懂程序,大致上了解一下該程序段所執行的功能或者流程,以便后面進行查看時判斷程序的正誤.讀程序的過程中就需要熟練的運用尋址方式來讀懂程序,最先開始就因為尋址方式而讀不懂程序.學會了 G 命令的使用,同時了解了 T.G.P 命令它們之間的不同.了解到了 INT 的部分指令的功能,如 INT20H INT3 等等.
第三篇:軟件工程第二次實驗報告
江 西 理 工 大 學
軟件工程 實驗報告
實驗名稱 實驗2 編寫軟件可行性分析報告 實驗日期 2014-04-03 專業班級 計算機111班 桌號
實 驗 人
學號
同組人
一、實驗目的和要求
對一個軟件系統進行可行性分析,將可行性分析過程的結果進行分析匯總,編寫一份描述計劃任務的可行性分析報告。
二、實驗內容和步驟
(1)系統概述。對當前系統及存在問題的簡單描述、新系統特點及開發要點,新系統及其各個子系統的功能與特性、新系統與當前系統的比較等。
(2)可行性分析。可行性分析是報告的主體。論述新系統在經濟上、技術上、運行上、管理及法律上的可行性,以及對新系統的主客觀條件的分析。
(3)初步開發方案及開發計劃。在可行性分析的基礎上,提出初步開發建議方案和計劃。
(4)結論意見。綜合上訴分析,說明新系統是否可行,給出具體結論。
三、結果分析 1 引言
1.1 編寫目的:
可行性研究的目的是為了對問題進行研究,以最小的代價在最短的時間內 確定問題是否可解
經過對此項目進行詳細調查研究,初擬系統實現報告,對軟件開發中將要
面臨的問題及其解決方案進行初步設計及合理安排。明確開發風險及其所帶來的 經濟效益。本報告經審核后,交軟件經理審查。1.2項目背景:
開發軟件名稱:機票預訂系統。
項目任務提出者:中國民航及中國國際旅游開發公司。項目開發者:浙江大學IMK 開發小組。用戶:中國民航及中國國際旅游開發公司。
第2 頁 / 共4頁
實現軟件單位:中國國際旅游開發公司及浙江大學 項目與其他軟件,系統的關系:
本項目采用客戶機/服務器原理,客戶端的程序是建立在Windows NT 系統上以MicrosoftVisual C++為開發軟件的應用程序,服務器端采用Linux 為操作系統的工作站,是采用Oracle8 的為開發軟件的數據庫服務程序。1.3 參考資料: 《軟件工程導論》,張海藩,清華大學出版社。《實用軟件工程》,鄭人杰等,清華大學出版社。2 可行性研究的前提 2.1要求
主要功能:為游客提供機票預定服務,方便旅游局的售票工作,提高旅游局的服 務質量和服務效率
性能要求:機場提供的信息必須及時的反映在旅游局的工作平臺上。售票系統的 定單必須無差錯的存儲在機場的主服務器上。對服務器上的數據必須進行及時正確的刷新。
輸出要求:數據完整,詳實。輸出要求:簡捷,快速,實時。
安全與保密要求:服務器的管理員享有對機場航班信息庫及機票信息庫和定票信 息庫的管理與修改。售票員只享有對訂票信息庫的部分修改(寫入與讀出)。完成期限:預計六個月。2.2目標:
系統實現后,大大提高旅游局的機票預定服務效率。降低售票服務中的錯誤發生率,減少信息交流的煩瑣過程及其帶來的開銷。2.3條件,假定和限制 建議軟件壽命:5 年。
經費來源:中國國際旅游開發公司。
硬件條件:服務器sun 工作站,終端為pc 機。運行環境:Linux 數據庫:Oracle8
2.4決定可行性的主要因素
成本/效益分析結果,效益〉成本。
技術可行,現有技術可完全承擔開發任務。操作可行,軟件能被原有工作人員快速接受。3 技術可行性分析 系統簡要描述:
在旅游局中的終端是安裝了Windows NT 的PC 機,主要目的是向機場的服務器傳 遞數據。當顧客在旅游局進行咨詢時,終端向服務器發出查詢請求,服務器根據航班信息庫的實時數據,向終端發送數據,顯示在終端的屏幕上。當顧客向售票員定票時,終
第3頁 / 共4頁第4頁/ 共4頁
端向服務器發出詳盡的一份定單,服務器核對后,存入定票信息庫,并修改機票信息庫。當顧客再次來取票時,終端向服務器發出查詢定票請求,服務器接收后,查詢定票信息庫,核對后,傳送機票確認表單,終端打印出機票。4 經濟可行性分析 4.1支出 基礎投資:
終端PC 機20臺:8000*20 = 16 萬 網絡設備:10 萬 輔助配置:10 萬 共計:36 萬
其他一次性投資: 系統管理員事務 航班信息的更新
服務器終端顯示數據產生報表 售票員查詢請求 數據庫產生報表 客戶機終端顯示數據 售票員表單申請產生報表 客戶機終端顯示數據
售票員機票核對事務在客戶端打印機票和帳單產生報表及帳單 Oracle 8.0 : 20 萬 Windows NT: 10 萬 操作員培訓費:5 萬 共計:35 萬 經常性支出:
人工費用: 6(月)*20(人)*5000(圓)=60 萬 其他不可知額外支出: 20 萬 共計: 80 萬
支出共計: 151 萬 4.2效益 一次性收益 0 元
經常性收益
(按銀行利率:1%);
減少員工20 人(1000 圓/人)五年收益:
1000*(1.1+(1.1)2+(1.1)3+(1.1)4+(1.1)5)*20*12*5=120 萬 工作效率提高收益(工作效率提高30%):
30*(1.1+(1.1)2+(1.1)3+(1.1)4+(1.1)5)*(30%)*5 = 45 萬 經常性收益共計: 160 萬
不可定量收益
因服務質量提高增加旅客量10%:
1000 萬*10%*(90%+(90%)2+(90%)3+(90%)4+(90%)5)=360 萬 收益共計: 520 萬 4.3收益/投資比
520 萬/151 萬= 344% 4.4投資回收周期 2-3 年
4.5敏感性分析
設計系統周期為五年, 估計最長可達10 年 處理速度: 一般查詢速度<4 秒 關鍵數據查詢速度: <2 秒 5 用戶使用可行性
使用本軟件人員要求有一定計算機基礎的人員,系統管理員要求由計算機的專業知 識,所有人員都要經過本公司培訓.管理人員也需經一般培訓.經過培訓人員將會熟練使用本軟件.兩名系統管理員,一名審計員將進行專業培訓,他們將熟練管理本系統.6 其他可供選擇的方案
客戶端與服務器端聯系在一起,在旅游局中只設立終端,在機場設立服務器,數據輸入由終端輸入,所有數據都由服務器處理,只在終端上顯示數據結果。此設計簡化了數據處理,但加重了服務器的數據處理。而使用客戶端/服務器機理,簡化數據流量,加快數據處理。7 結論意見
由于投資效益比遠大于100%, 技術、經濟、操作都有可行性,可以進行開發。
四、實驗心得
此次文檔的編寫在整個軟件開發的過程中,起到了很重要的作用。它讓我們知道在以后的軟件開發過程中應該注意的問題,并且應該做出相應的措施來解決軟件開發過程中出現的各種問題。
第四篇:西安交通大學匯編第二次上機實驗報告
提交上機結果的模板文件 第 2 次線上上機 班級 學號 姓名
1、循環程序設計-1(1)匯編、連接后的截圖
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:masm xun 得到 xun.obj,xun.crf,xun.lst 文件,通過 link xun 得到 xun.map 文件,顯示編譯成功。
(2).lst 文件的截圖,TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:通過 masm 對程序進行編譯時生成.lst 文件,通過 notepad++打開.lst 文件,并進行截圖(3)反匯編的截圖
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:在 debug 環境下執行 u 指令,顯示出反匯編代碼。
(4)在完成 DS 賦值后,立即顯示各個寄存器的值
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:按單步 t 之后,下方出現 MOV DS,AX,即下一條即將執行的指令為 MOV DS,AX,再按一次 t,此時 DS 被賦值,此時執行的 r 指令顯示的就是 DS 賦值后各個寄存器的值。
(5)在進行計算前,顯示數組 M 開始的 n+2 個字的內存值的截圖(只能顯示這n+2 個字的內存值,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:在 debug 環境下,執行 d 指令顯示內存,由于不能顯示其他字的內存值,所以只能
一行一行截圖,可以看到,此時內存值與程序初始定義值相同。
(6)執行完計算后,立即顯示各個寄存器的值
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:先執行 g 指令到執行回到 dos 系統指令,此時顯然已經執行完運算,此時執行 r 指令就獲得執行完運算后各個寄存器的值。
(7)執行完計算后,顯示數組 M 開始的 n+2 個字的內存值的截圖(只能顯示這n+2 個字的內存值,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:執行 d 指令顯示出內存值,由于要求是不能顯示其他字的值,所以只能一行一行截圖,可以看到此時內存值與期望結果相同。
(8)源代碼
TODO:你的源代碼(必選)
;empty asm file
title I love asm
data segment n
dw 0010h
M
dw
0021h,0084h,0041h,0010h,0027h,0018h,0044h,0011H,0002h,0028h,0024h,0020h,0022h,0014h,0030h,0040h
DATA1 DW ?
ADDRR DW ?
data ends
code segment
assume cs:code, ds:data
main
proc
;assign the data segment base address to DS
mov
ax, data
mov
ds, ax
;TODO...;| add your code between arrows |
;v----------------------------v
MOV CX, n
;循環計數器
LEA DI, M
MOV AX,[DI]
;取第一個數
MOV ADDRR, DI
;記下絕對值最大的數的地址
CMP AX,0
;此數是正數嗎?
JNS ZHEN
;是正數,即為絕對值,轉去判斷下一個數
NEG AX
;不是正數,變為其絕對值
ZHEN:MOV BX,[DI]
CMP BX,0
;此數是正數嗎?
JNS COMP
;是正數,即為絕對值,轉去比較絕對值大小
NEG BX
;不是正數,變為其絕對值
COMP: CMP AX, BX
;判斷絕對值大小
JAE ADDRESS
MOV AX, BX
;(AX)<(BX),使(AX)中為絕對值最大的數
MOV ADDRR, DI
;記下絕對值最大的數的地址
ADDRESS:ADD DI, 2
LOOP ZHEN
MOV
DATA1, AX
;記下此數
;^----------------------------^
;|
The END
|
;method 2: return to dos
mov
ax, 4c00h
int
21h
main
endp code ends end main
2、循環程序設計-2 (1)匯編、連接后的截圖
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:masm xun 得到 xunhuan.obj,xunhuan.crf,xunhuan.lst 文件,通過 link xunhaun 得到xunhaun.map 文件,顯示編譯成功。
(2).lst 文件的截圖
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:通過 masm 編譯 jishu,獲得 jishu.lst 文件,要 notepad++打開并進行截圖。
(3)反匯編的截圖
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:在 debug 環境下執行 u 指令顯示出反匯編代碼。
(4)在進行計算前,顯示數組 A 中 15 個整數的內存值的截圖(只能顯示這 15個整數的內存值,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:執行 d 指令顯示出內存值,由于不能顯示其他數內存值,所以一行一行進行截圖,可以看到,此時內存值與程序初始定義相同。
(5)在進行計算前,顯示數組 B 中 20 個整數的內存值的截圖(只能顯示這 20個整數的內存值,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:執行 d 指令顯示出內存值,由于不能顯示其他整數內存值,所以一行一行進行截圖,可以看到,此時數組 B 中的內存值與程序初始定義相同。
(6)在進行計算前,顯示數組 C 中 15 個整數的內存值的截圖(只能顯示這 15個整數的內存值,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:執行 d 指令顯示出內存值,由于不能顯示其他整數內存值,所以一行一行進行截圖,可以看出,此時內存值與程序初始定義相同。
(7)執行完計算后,立即顯示各個寄存器的值
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:先用 g 指令跳到返回 dos 調用指令,此時已經執行完計算,再執行 r 指令,顯示的就是執行完運算的各個寄存器的值。
(8)執行完計算后,顯示數組 A 中 15 個整數的內存值的截圖(只能顯示這 15個整數的內存值,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:執行 d 指令顯示出內存值,由于要求是不能顯示其他字的值,所以只能一行一行截圖,可以看到此時內存值與期望結果相同。
(9)執行完計算后,顯示數組 B 中 20 個整數的內存值的截圖(只能顯示這 20個整數的內存值,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:執行 d 指令顯示出內存值,由于要求是不能顯示其他字的值,所以只能一行一行截圖,可以看到此時內存值與期望結果相同。
(10)執行完計算后,顯示數組 C 中 15 個整數的內存值的截圖(只能顯示這 15個整數的內存值,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:執行 d 指令顯示出內存值,由于要求是不能顯示其他字的值,所以只能一行一行截圖,可以看到此時內存值與期望結果相同。
(11)源代碼
TODO:你的源代碼(必選)
;empty asm file
title I love asm
data segment
A
dw
0027h,0018h,0021h,0028h,0024h,0020h,0022h,0014h,0011h,0010h,0012h,0017h,0084h,0081h,0080H
B
dw
0018h,0021h,0028h,0024h,0020h,0022h,0044H,0041h,0011h,0010h,0012h,0017h,0084h,0081h,0080h,0040h,0042h,0047h,0002h,0007h
C1
DWDUP(?)data ends
code segment
assume cs:code, ds:data
main
proc
;assign the data segment base address to DS
mov
ax, data
mov
ds, ax
;TODO...;| add your code between arrows |
;v----------------------------v
mov si,0
MOV DI,0
mov bx,A
jiao:MOV CX,B[SI]
;想法是 di 指 A 中的元素,di 遞增,拿 A 中的一個元素每次與 B 中的所有元素作比較
CMP A[DI],CX
;直到遇到相同為止,如果沒有遇到相同,有設置對 si 值比較指令,b 中所有元素相同時
JZ JI
;會跳轉到 JI
INC SI
INC SI
CMP SI,42
JZ JI
JMP jiao
JI:mov ax,B[SI]
mov C1[DI],AX
MOV SI,0
INC DI
INC DI
CMP DI,32
JZ EXIT
JMP jiao
;^----------------------------^
;|
The END
|
;method 2: return to dos
EXIT: mov
ax, 4c00h
int
21h
main
endp code ends end main
3、分支程序設計 (1)匯編、連接后的截圖
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:masm xun 得到 jishu.obj,jishu.crf,jishu.lst 文件,通過 link xun 得到 jishu.map 文件,顯示編譯成功。
(2).lst 文件的截圖
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:通過 masm 形成 jishu.lst 文件,通過 notepad++打開,并進行截圖。
(3)反匯編的截圖
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:在 debug 環境下執行 u 指令,顯示出反匯編代碼。
(4)在完成 DS 賦值后,立即顯示各個寄存器的值
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:第一步 t 指令執行底下為 MOV DS,AX,說明接下來執行的指令是 MOV DS,AX,所以再執行一次 t 指令,然后用 r 指令顯示寄存器當前的值。
(5)在進行計算前,顯示在數據段中定義的學號字符串的內存值的截圖(只能顯示完整的學號字符串,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:執行 d 指令顯示出內存值,由于不能顯示其他內存值,所以一行一行進行截圖,可以看出,此時內存值與程序初始定義相同。
(6)在進行計算前,顯示在數據段中定義的 COUNT 數組的內存值的截圖(只能顯示完整的 COUNT 數組內容,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:執行 d 指令顯示出內存值,由于不能顯示其他內存值,所以一行一行進行截圖,可以看出,此時內存值與程序初始定義相同。
(7)執行完計算后,立即顯示各個寄存器的值
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:通過執行 g 指令跳到調用 dos 系統的指令,此時已經執行完運算,再執行 r 指令,顯示出的就是執行完計算后各個寄存器的值。
(8)執行完計算后,顯示在數據段中定義的學號字符串的內存值的截圖(只能顯示完整的學號字符串,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:執行 d 指令顯示出內存值,由于不能顯示其他內存值,所以一行一行進行截圖,可以看出,此時內存值與程序期望相同。
(9)執行完計算后,顯示在數據段中定義的 COUNT 數組的內存值的截圖(只能顯示完整的 COUNT 數組內容,多顯示、少顯示均扣分)
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
說明:說明:執行 d 指令顯示出內存值,由于不能顯示其他內存值,所以一行一行進行截圖。學號為 2184411027,0-9 個數分別為 1,3,2,0,2,0,0,1,1,0,結果正確。
(10)程序在 DOSBox 下直接運行的截圖
TODO:你的截圖(必選)
TODO:你的文字解釋說明(可選)
(11)源代碼
TODO:你的源代碼(必選)
;empty asm file
title I love asm
data segment
A
dw
0027h,0018h,0021h,0028h,0024h,0020h,0022h,0014h,0011h,0010h,0012h,0017h,0084h,0081h,0080H
B
dw
0018h,0021h,0028h,0024h,0020h,0022h,0044H,0041h,0011h,0010h,0012h,0017h,0084h,0081h,0080h,0040h,0042h,0047h,0002h,0007h
C1
DWDUP(?)data ends
code segment
assume cs:code, ds:data
main
proc
;assign the data segment base address to DS
mov
ax, data
mov
ds, ax
;TODO...;| add your code between arrows |
;v----------------------------v
mov si,0
MOV DI,0
mov bx,A
jiao:MOV CX,B[SI]
;想法是 di 指 A 中的元素,di 遞增,拿 A 中的一個元素每次與B 中的所有元素作比較
CMP A[DI],CX
;直到遇到相同為止,如果沒有遇到相同,有設置對 si 值比較指令,b 中所有元素相同時
JZ JI
;會跳轉到 JI
INC SI
INC SI
CMP SI,42
JZ JI
JMP jiao
JI:mov ax,B[SI]
mov C1[DI],AX
MOV SI,0
INC DI
INC DI
CMP DI,32
JZ EXIT
JMP jiao
;^----------------------------^
;|
The END
|
;method 2: return to dos
EXIT: mov
ax, 4c00h
int
21h
main
endp code ends end main
第五篇:西安交通大學第二次匯編上機實驗報告
80x86 匯編語言程序設計課內實驗報告 班級
實驗時間 5.31 姓名
學號
實驗內容概述 主要對第五章所學的循環了分支結構進行了實踐。
第一題循環結構比大小,把最大值的最大值的相對位置存儲在數組之后的兩位 第二題循環結構找兩數組之間的相同數字 第三題分支結構對數組里出現的元素進行計數 實驗步驟
一(1)對數據求源碼(負數取反后加一)(2)取每個數的絕對值(3)從前向后兩兩比較,如果當前數字比 max 的記錄值大,那么更新當前數字的 max,并存儲當前位置 pos 二(1)根據數組 a 的長度設置外循環次數(2)根據數組 b 的長度設置外循環次數(3)外循環遍歷 a 的每一個元素,將 a 中每一個元素與 b 中元素比較,如果相同,則終止當前內循環,將該值存儲在 c 數組中 三(1)定義一個分支結構,先判斷當前值,如果相等,則跳轉至對應子程序:使存儲該數字出現次數的位置上加一(2)程序運行結束時,在 dos 窗口輸出每個元素出現的次數,實驗中遇到的問題及其解決方法 1、mov 指令用錯 當時報錯后,查找了 mov 指令的課本內容,想起來存儲單元之間不能直接賦值,已解決 2、邏輯正確,數據錯誤 當時確認邏輯無誤之后,我的內心非常糾結,甚至出現了想要重裝軟件的想法,后來利用 u 和 t 指令,一步步找錯,發現是比例因子出現錯誤,將 inc cx改為 add cx,2 后解決 實驗結果
結果均正確
2020
年月
日
建議 無 備注 無