freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

微機(jī)原理軟件實(shí)驗(yàn)報(bào)告-全文預(yù)覽

2025-04-01 13:21 上一頁面

下一頁面
  

【正文】 交換 XCHG AL,[DI4] MOV [DI],AL INC DI LOOP GOON2 POP CX DEC DI DEC DI 。此時(shí) cx 為比較次數(shù) AGAN: MOV AL,[DI] CMP AL,[DI4] JA GOON1 。di 指向最后一個(gè)分?jǐn)?shù)的十位的 AscII 碼 JMP COTI COMP2: ADD DI,VAR2 。不是,則 bx+1 后繼續(xù)檢查 JMP NEXT1 ERROR:LEA DX,STR2 。檢查第二位的 AscII 碼 JB ERROR CMP AL,39H JA ERROR MOV [DI],AL 。若小于 30h,則報(bào)錯(cuò) JB ERROR 微機(jī)原理軟件實(shí)驗(yàn)檢驗(yàn)輸入是否合法的子程序 CHECK PROC NEXT1: MOV CK,0 MOV [DI],AH 。顯示字符串,輸出提示輸入 INT 21H INPUT:LEA DX,BUFFER 。 DB 100 DUP (39。,0DH,0AH,39。,0DH,0AH,39。報(bào)告 第 24 頁 五、程序源代碼及解釋 PRINT MACRO X 。 其實(shí)這里的“冒泡排序”是倒著的冒泡排序,因?yàn)榻Y(jié)果是將最高分排到了開頭但是基本思想是一致的。報(bào)告 第 21 頁 實(shí)驗(yàn)四 子程序設(shè)計(jì) 一 .實(shí)驗(yàn)?zāi)康?: 。 硬件編程和軟件編程的差別在本次實(shí)驗(yàn)里更加體現(xiàn)出來了,如 果光用軟件編程的思想去控制硬件編程會(huì)出現(xiàn)很多奇怪的錯(cuò)誤。子程序大大縮短了代碼的長度和冗余度,不僅更加美觀,也使邏輯更加清晰 。如果等于,則繼續(xù)比較各位的 ASCII 碼的大小。 ( 3)輸入的數(shù)字為空,即直接按下了空格鍵。繼續(xù)比較下一個(gè)數(shù) HIGH1: CMP AL,MIN[1] JNB LOOPA 。如果十位數(shù)比臨時(shí)的最小數(shù)的高位大不改變 min JA LOOPA JZ HIGH1 。如果輸入的數(shù)字個(gè)數(shù)為 0,則是第三種錯(cuò)誤 AND BL,01H 。進(jìn)入下一次讀取鍵盤操作 GET: SUB AL,30H 。比較當(dāng)前輸入的是否是空格,如果是直接忽略 JZ CUOWU3 JMP GET LOOP2: CMP AL,20H 。從鍵盤獲取輸入子程序 GETNUM PROC PUSH AX PUSH BX PUSH CX 微機(jī)原理軟件實(shí)驗(yàn)將最小數(shù)的高位數(shù)賦給 DL,加上 30H 輸出 ADD DL,30H INT 21H MOV AH,02H MOV DL,MIN[1] 。STACK39。939。存放數(shù)的總數(shù) NUM DB 100 DUP(?) 。$39。$39。$39。$39。$39。報(bào)告 第 14 頁 保 護(hù) 現(xiàn) 場調(diào) 用 D O S 命 令 輸 入單 個(gè) 字 符是 否 是 回 車 符C X 是 否 為 0C X 是 否 為 1C X 是 否 為 2否否否當(dāng) 前 輸 入 是 否空 格是當(dāng) 前 已 經(jīng) 輸 入 了 一 位 ,當(dāng) 前 是 不 是 空 格是當(dāng) 前 已 經(jīng) 輸 入 了 兩 位 ,當(dāng) 前 是 不 是 空 格是輸 入 字 符 是 否合 法將 輸 入 的 字 符 存 入寄 存 器 , 并 修 改C X , D I是否是否C X 清 零錯(cuò) 誤 1 , 調(diào) 用 顯 示子 程 序錯(cuò) 誤 4 , 調(diào) 用 顯 示子 程 序錯(cuò) 誤 3 , 調(diào) 用 顯 示子 程 序錯(cuò) 誤 2 , 調(diào) 用 顯 示子 程 序否是是是輸 入 的 數(shù) 字 格 式 是 否為 0是是 否 是 兩 位 數(shù)否否恢 復(fù) 現(xiàn) 場 圖二 獲取鍵盤輸入子程序 微機(jī)原理軟件實(shí)驗(yàn) 3. 你覺得采用二進(jìn)制運(yùn)算還是十進(jìn)制運(yùn)算更適合于這個(gè)實(shí)驗(yàn)? 答:采用二進(jìn)制或者十進(jìn)制都需要進(jìn)行 ASCII 碼到數(shù)字的轉(zhuǎn)換和其反向轉(zhuǎn)換, 都比較麻煩,增大了代碼復(fù)雜度 。 . 二、實(shí)驗(yàn)內(nèi)容 ,尋找其中的最小值 ,然后在屏幕上顯示出來 . ,輸入結(jié)束標(biāo)志自定 ,但要在報(bào)告中說明 . ,以防止非法字符輸入 ,并有適當(dāng)?shù)奶崾?. ,分別用子程序?qū)崿F(xiàn) .在報(bào)告中要給出模塊層次圖 . 三、預(yù)習(xí)思考 1. 如何將輸入的兩個(gè)字符 (0~ 9)變?yōu)槭M(jìn)制或二進(jìn)制數(shù)? 答:輸入的字符 0~ 9 是 ASCII 碼表示的,對應(yīng)于 30H~ 39H,通過減去30H,可以轉(zhuǎn)換為相應(yīng)的計(jì)算機(jī)數(shù)。更改為 AL 與 00H 比較就解決了這一問題??偸橇?xí)慣用 C 語言編程的習(xí)慣來寫代碼,所以采用了除法判斷余數(shù)的方法區(qū)分奇偶數(shù)。執(zhí)行 IDIV 指令(帶符號(hào)數(shù)的除法指令)后, 8 位數(shù)除以 4 位數(shù)的余數(shù)存放在 AX 寄存器的高 8 位 AL 中,通過比較 AL 與 0 的關(guān)系判斷出奇偶數(shù)。正偶數(shù) JMP EXIT 微機(jī)原理軟件實(shí)驗(yàn)為 0 跳轉(zhuǎn) IDIV BL OR AH,0 JZ PO 。如果余數(shù)為 0,則為負(fù)偶數(shù) JNZ MJ 。 DATA ENDS STACK SEGMENT STACK 39。 BUF5 DB 39。 BUF3 DB 39。0 的個(gè)數(shù) BUF1 DB 39。正偶數(shù) COUNT3 DB 0 。其余方法大同小異,核心的思想是要么直接和 0 相比,要么使用邏輯或移位運(yùn)算,取出符號(hào)為進(jìn)行 判斷。 三、預(yù)習(xí)思考 1. 十進(jìn)制數(shù) 0 ~ 9 所對應(yīng)的 ASCII 碼是什么? 如何將十進(jìn)制數(shù) 0 ~ 9 在屏幕上顯示出來? 答: 0~ 9 分別對應(yīng) ASCII 碼的 30H~ 39H。每類數(shù)的個(gè)數(shù)都不超過 9。 可以結(jié)合 r 指令、 t 指令、已經(jīng)用 g 指令設(shè)置斷點(diǎn)來診斷問題。實(shí)驗(yàn)之前我還覺得匯編語言過于抽象,難以看懂。 微機(jī)原理軟件實(shí)驗(yàn) 微機(jī)原理軟件實(shí)驗(yàn)得出 A 的地址為: 0B88: 0000,值為 1BH,即十進(jìn)制的 27D; B 的地址為: 0B88: 0001,值為 33,即十進(jìn)制的 51D。 并判斷結(jié)果是否正確 . (4)在子程序 SUB1 的入口處設(shè)一斷點(diǎn) ,用 G 命令執(zhí)行程序 . 在斷點(diǎn)處觀察 堆 棧的內(nèi)容 ,比較堆棧的內(nèi)容和程序返回地址是否一致 . (5)用 E 命令修改單元 A,B 的內(nèi)容 ,重新執(zhí)行程序 ,并記錄結(jié)果 . (6)用 M 命令和 A 命令對程序進(jìn)行修改 : 將主程序中最后兩條指令 (ADD 和 ADC) 修改為一條 CALL SUB1 指令 ,重新執(zhí)行程序 . (7)退出 DEBUG. ,把源程序最后一句中的 STAR 去掉 .再次生成可執(zhí)行文件 , 并用 DEBUG 調(diào)入內(nèi)存 .當(dāng)使用 U 命令時(shí) ,顯示的結(jié)果與前一次 (未加 STAR) 的結(jié)果有何不同 ? 三、 預(yù)習(xí)題 : DEBUG 命令 . . SS=2021H,SP=FFFFH, 向堆棧中壓入 4 字節(jié)數(shù)據(jù)后 ,如何用 D 命令顯示壓入堆棧的內(nèi)容 ? 答: 使用 debug 指令“ d 2021:0000”即可顯示壓入堆棧的內(nèi)容,這是因?yàn)?SP+1 會(huì)溢出,變成 0000。 DEBUG 調(diào)試程序的方法 . 二 、 實(shí)驗(yàn)內(nèi)容 : ,輸入以下匯編語言源程序 : DAT SEGMENT A DB 20 。報(bào)告 第 1 頁 實(shí)驗(yàn)一 DEBUG 的使用 一 、 實(shí)驗(yàn)?zāi)康?: ,編譯 ,連接和執(zhí)行的全過程 。報(bào)告 第 2 頁 RET STAR ENDP SUB1 PROC MOV AL,Z MOV AH,Z+1 MUL AH ADD WORD PTR Y,AX ADC BYTE PTR[Y+2],0 RET SUB1 ENDP COD ENDS END STAR ,連接形成可執(zhí)行文件 . DEBUG 將可執(zhí)行文件調(diào)入 ,并進(jìn)行調(diào)試 . (1)用 D 命令觀察數(shù)據(jù)區(qū)在內(nèi)存中的具體內(nèi)容 ,記錄單元 A 和 B 的具體地址 . (2)用 U 命令對目標(biāo)代碼反匯編 ,觀察反匯編后的結(jié)果 .注意發(fā)現(xiàn)源程序的起始 位置 , 并記錄這個(gè)起始地址 . (3)用 T 命令作單步跟蹤調(diào)試 .比較每條指令執(zhí)行后的結(jié)果和原來的理解是否 一致 .得出程序運(yùn)行的結(jié)果 :它們是寫在什么單元 ,具體內(nèi)容是什么 。 進(jìn)入 debug 中,用 u 命令查看反編譯結(jié)果。 SUB1 子程序段入口地址為 003F。 上圖為用 t 命令單步運(yùn)行結(jié)果, 執(zhí)行 SUB1 之后返回主程序時(shí) CS 為 0B88, IP 為001A,壓入堆棧的 IP 值已經(jīng)彈出, CS,IP 已經(jīng)指向下一條指令。 五、實(shí)驗(yàn)總結(jié) 本次實(shí)驗(yàn)我初步了解了匯編語言的調(diào)試過程。 使用 u 指令修改 asm 代碼時(shí)要對照反匯編的結(jié)果,若要?jiǎng)h去某條指令,可以找到那條指令在代碼段的偏移地址,再用 u 指令將其修改為 NOP(從該指令開始到下一條指令開始的地址 1 處)。 二、實(shí)驗(yàn)內(nèi)容 ,內(nèi)存有若干個(gè)正數(shù),負(fù)數(shù)和零。 4.(擴(kuò)展題)統(tǒng)計(jì)出正奇數(shù)、正偶數(shù),負(fù)奇數(shù)、負(fù)偶數(shù)以及零的個(gè)數(shù)。一是直接用 CMP 命令和 0 比較,然后用 JZ等命令進(jìn)行判斷;二是和 0 相比是否相等,然后用該數(shù)(假設(shè)為 8 位)和10000000 相與,取出符號(hào)位判斷,可區(qū)分正負(fù)。正奇數(shù) COUNT2 DB 0 。報(bào)告 第 8 頁 COUNT5 DB 0 。POSITIVE ENEN:$39。NEGATIVE ENEN:$39。$39。如果大于或等于 0 則進(jìn)入 PLU IDIV BL OR AH,0 JZ MO 。負(fù)奇數(shù) JMP
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1