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

正文內(nèi)容

微機(jī)原理實(shí)驗(yàn)報(bào)告-微機(jī)原理實(shí)驗(yàn)報(bào)告-在線瀏覽

2024-09-27 09:40本頁(yè)面
  

【正文】 (code segment)就是程序的代碼段了,可以看出就算是一個(gè)空的程序(不執(zhí)行其他操作)也要寫(xiě)很多 的代碼,我自己認(rèn)為在初學(xué)的時(shí)候不需要太在意這些細(xì)節(jié)問(wèn)題,一種簡(jiǎn)便的方法 是直接把代碼段的這些框架似的語(yǔ)句直接當(dāng)作 C 語(yǔ)言里面的 void main(){}就可以了,我們可以在暫時(shí)不了解它的情況下完成自己的程序。 通過(guò)以上步驟,如果沒(méi)有出現(xiàn)錯(cuò)誤,那么一個(gè)可執(zhí)行文件就已經(jīng)生成好了。stack39。1A$39。stack39。$39?,F(xiàn)在我以第三章的第 28 題為例來(lái)說(shuō)明一下如何設(shè)計(jì)一個(gè)較復(fù)雜的匯編程序: 題目: 編寫(xiě)程序,實(shí)現(xiàn)接收鍵入的一串以逗號(hào)分隔的十進(jìn)制正數(shù)(十進(jìn)制正數(shù)均小于10000,個(gè)數(shù)不超過(guò) 51 個(gè)),并將其中的最大值送顯示。 首先我們要設(shè)計(jì)好正確的程序流圖 , 如下: 輸入十進(jìn)制字符 并 串 存儲(chǔ)于 BufIn中 求輸入的字符數(shù) 將 BufIn 中的十 進(jìn)制串轉(zhuǎn)換為 BCD 數(shù)然后存儲(chǔ)到 BCDNum 中 遍歷 BCDNum 求最大值 顯示結(jié)果 由 以上流圖則可以將該程序分為 如下幾個(gè)模塊: BCD 數(shù)并存 儲(chǔ)于 指定的存儲(chǔ)區(qū)中 BCD 數(shù)的最大值 BCD 數(shù) 由于是允許輸入的十進(jìn)制數(shù)最大值為 9999,故每個(gè) BCD 數(shù)占用兩個(gè)字節(jié),最大輸入的十進(jìn)制數(shù)為 51 個(gè),因此為可以為 BCDNum 定義 102 個(gè)存儲(chǔ)單元,同理 BufIn 若占用 255 個(gè)存儲(chǔ)單元也可以保證輸入不會(huì)越界 接下來(lái)是各功能模塊的設(shè)計(jì): 模塊 A: 函數(shù)名 AccToBCD INPUT: dx 傳入十進(jìn)制字符的首地址 OUTPUT: 轉(zhuǎn)化后的壓縮 BCD 數(shù)在 DI 偏移的地址中 CHANGE:DI 會(huì)增加 2 CHANGE:dx 會(huì)改變到下一個(gè)逗號(hào)后 將程序中用到的某些寄存器壓棧 將 dx 中的偏移地址放入變址寄存器 SI 中 將 dx 地址后第一個(gè)逗號(hào)前的所有十進(jìn)制 ACS2 碼轉(zhuǎn)換為一個(gè)十六進(jìn)制數(shù)并存于 ax 中 將 ax 中的十六進(jìn)制數(shù)轉(zhuǎn)換為 BCD 數(shù)并存于 DI 指向的地址中 壓棧的積存器出棧 模塊 B 函數(shù)名 GetSize INPUT: dx 傳入字符串的首地址 INPUT cx中傳入字符的個(gè)數(shù) OUTPUT: cx中返回?cái)?shù)目 將程序 中用到的某些寄存器壓棧 通過(guò)計(jì)算 BufIn 中逗號(hào)的數(shù)目得到十進(jìn)制數(shù)的個(gè)數(shù),存于 cx中 壓棧的積存器出棧 模塊 C 函數(shù)名 : GetMax INPUT: cl存放數(shù)目 INPUT: SI 存放 BCD 串的首地址 OUTPUT: ax 存放最大的 BCD 數(shù) 將程序中用到的某些寄存器壓棧 將 ax 中存 0 逐個(gè)比較 ax 與 BCD 數(shù)的大小,若 ax BCD,則交換,最后得到的就是最大值 壓棧的積存器出棧 模塊 D 1. 接口設(shè)計(jì) 函數(shù)名 : Display INPUT: 將 ax 中 存入要顯示的 BCD 數(shù) OUTPUT: 將 ax 中存放的 BCD 數(shù)顯示出來(lái) 2. 函數(shù)內(nèi)部算法設(shè)計(jì) 將程序中用到的某些寄存器壓棧 顯示 ah 中的 兩位 壓縮 BCD 數(shù) 顯示 al 中的兩位壓縮 BCD 數(shù) 壓棧的積存器出棧 程序清單如下 : stack segment stack 39。 dw 32 dup(?) stack ends data segment BufIn db 255,0,255 dup(?) 。轉(zhuǎn)換為 BCD 后的十進(jìn)制串 NSize db ? 。用戶輸入字符串到 BufIn 存儲(chǔ)區(qū)中 mov dx,offset BufIn mov ah,10 int 21H 。,39。求輸入的字符數(shù)目 (加上后面補(bǔ)上的 1 個(gè)逗號(hào)) mov dx,offset BufIn + 2 mov cl,BufIn[1] INC cl CALL far ptr GetSize mov NSize,cl 。存儲(chǔ)區(qū)中 mov cl,NSize mov ch,0 mov dx,offset BufIn + 2 mov DI,offset BCDNum AGAIN3: CALL AscToBCD loop AGAIN3 。最大值壓棧
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1