




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、用十六位乘法指令完成三十二位無符號數乘法一、要求:以十六進制格式輸入乘數和被乘數,以十六進制格式顯示結果,兩個數相乘(十六進制數輸入,十六進制數輸出)二、設計原理實現兩個32位無符號數的相乘,被乘數在DX和AX寄存器中,乘數在CX和BX寄存器中,最后的64位乘積在DX,CX,BX,AX中。三、設計流程圖四、程序代碼ddata segment w1 dw 4 dup(0) 定義4字存放兩個32位乘法因子,地址低位存放數據高位 w2 dw 4 dup(0)
2、60; 定義4字存放運算結果,乘法結果高位存放在RES低位 D5 db ' (H)','$' D1 db 'Please Input the number1 : ','$' D2 db 'Please Input the number2 : ','$' D3 db 'Get th
3、e result : number1 * number2 = ','$' D4 db 0dh,0ah,'$'ddata endssstack segment para stack 'stack' 定義堆棧段 sta dw 100 dup(?) ;定義一個100個word的數組 top label wordsstack ends
4、ccode segment 定義代碼段 assume cs:ccode,ds:ddata ;定義代碼段和數據段main proc far 主程序開始start: mov ax,sstack mov ss,ax mov sp,offset top push
5、 ds mov ax,0 ;將ax清零 push ax mov ax,ddata 將DDATA的段地址送入ds mov ds,ax 初始化結束 call en
6、 mov dx,offset D1 mov ah,9 int 21h mov bx,offset w1call read 存放輸入數據 call h 顯示H call en 回車,換行 mov dx,offset D2
7、60;顯示提示信息 mov ah,9 在屏幕上輸出字符串D2 int 21h 中斷調用 add bx,4 call read 存放輸入數據 call h call en call en
8、160; mov dx,offset D3 顯示提示信息 mov ah,9 int 21h 實現32位乘法 call multmov bx,offset w2 call dispall 調用子程序輸出結果 mov ah,10h
9、0; int 16h int 10h call h call en call en retmain endp ;相乘mult proc push ax push bx
10、; push cx push dx push di mov ax,offset w2 mov di,ax DI指向RES偏移地址 mov bx,offset w1 BX指向乘法因子首地址 mov ax,bx+6 D1第48位以后,被乘數
11、的低16位 mov cx,bx+2 D1第16位以后,乘數的低16位 mul cx 32位乘法,結果存在DX,AX中 add di+6,ax 低16位乘法結果儲存在RES高32位 add di+4,dx mov ax,bx+4
12、60;D1第32位以后,被乘數的高16位與乘數低16位相乘 mul cx CX不變,存放乘數低16位 add di+4,ax 移位加法 adc di+2,dx 帶進位加法 mov cx,bx 乘數的高16位 mov ax,
13、bx+6 被乘數低16位 mul cx 16位乘法 add di+4,ax 移位加法 adc di+2,dx 帶進位加法 adc word ptrdi,0 mov ax,bx+4 被乘數高
14、16位 mul cx CX內容為乘數高16位,高16位乘法 add di+2,ax 移位加法 adc di,dx 帶進位加法 pop di pop dx pop cx
15、0;pop bx pop ax retmult endp ;回車,換行en proc push ax push dx mov dx,offset D4 mov ah,9 int 21h&
16、#160; pop dx pop ax reten endph proc push ax push dx mov dx,offset D5 mov ah,9
17、60;int 21h pop dx pop axreth endp ;顯示入口bxdispall proc push cx push bx mov cx,4l1: push cx mov cl,8 mov ax,bx
18、160; add bx,2 call print pop cx loop l1 pop bx pop cx retdispall endp ;入口 bc 存放讀入數據read proc push cx push ax push dx
19、0; mov dx,0 mov ch,8next1: cmp ch,4 jnz n2 push ax push dx mov dl,' ' mov ah,2 int 21h pop dx
20、pop axn2: mov ah,7 int 21h cmp al,13 je over push dx mov dl,al call check ;調用CHECK,將輸入字符轉換為數據存儲 mov cl,al cmp cl,0 jnz next2
21、160; pop dx jmp next1 next2: mov ah,2 int 21h mov al,cl pop dx cmp ch,4 jnz full mov bx,dx mov dx,0full: mov cl,4 rol dx,cl
22、0; add dl,al dec ch jnz next1over: mov bx+2,dx ;結束 pop dx pop ax pop cx retread endpcheck proc ;檢查輸入數據是數字還是字母,轉換為ASC碼存儲 &
23、#160; cmp al,30h ;比較得出是數字還是字母 jl er cmp al,3ah jnl b1 sub al,30h ;將數字轉換成ASC碼 jmp okb1: cmp al,41h jl er cmp al,47h
24、 jnl b2 sub al,37h ;將字母轉換成ASC碼 jmp okb2: cmp al,61 jl er cmp al,67h jnl er sub al,57h jmp oker: mov al,0hok:
25、 retcheck endp ;入口axprint proc push cx push bx mov bx,ax mov ch,4next: mov cl,4
26、; rol bx,cl ;移位相與,屏蔽低位,得到要輸出的ASC碼 mov al,bl and al,0fh add al,30h cmp al,3Ah jl disp add al,7disp: mov ah,2 mov dl,al
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新員工入職安全培訓考試試題及參考答案AB卷
- 25年公司、項目部、各個班組三級安全培訓考試試題附答案(研優卷)
- 25年公司安全管理人員安全培訓考試試題【原創題】
- 知到智慧樹網課:地球科學概論(東華理工大學)章節測試滿分答案
- 2025租賃合同模板合同樣本
- 2025混凝土澆筑工程施工合同模板
- 2025汽車銷售貸款合同范本
- 2025年數控精密電火花成形機床項目合作計劃書
- 2025年的簡約合同范本
- 2025年共享充電寶合作協議書
- 醫院淺層地熱能評估報告
- GB/T 14975-2012結構用不銹鋼無縫鋼管
- DB21-T3683-2022醫療衛生機構醫療廢物衛生管理規范
- GB 17957-2021鑿巖機械與氣動工具安全要求
- 部編版六年級語文下冊期末專項復習:修辭手法
- 中藥學-七版教材
- 紅軍五次反圍剿課件
- ISO9001注冊審核員專業劃分小類
- 五年級道德與法治上冊課件 -保家衛國 獨立自主 部編版 (共48張PPT)
- 安徽省歷年中考數學試卷,2014-2021年安徽中考數學近八年真題匯總(含答案解析)
- 利益沖突申報表
評論
0/150
提交評論