1. 程式人生 > >組合語言 第三版 王爽 實驗10-2 編寫子程式 之 解決除法溢位問題 divdw

組合語言 第三版 王爽 實驗10-2 編寫子程式 之 解決除法溢位問題 divdw

題目:


分析:

1.也就是把dw資料拆成兩個db資料和db相除。
2.注意引數的傳入和傳出。

程式碼:

assume cs:code,ss:stack
stack segment
db 16 dup (0)
stack ends

;計算dw型除以db型,結果是dw型的除法運算
code segment
start:
	mov ax,4240H	;被除數的低位
	mov dx,000FH	;被除數的高位
	mov cx,0AH
	call divdw
	
	mov ax,4C00H
	int 21h
	
divdw:
	;先計算高位,再計算低位。低位先入棧
	push ax
	mov ax,dx
	mov dx,0    ;計算dw型 除以db型 結果是 db型除法運算

	div cx	    ;結果是dx 0 ax 商  cx 餘數
	mov bx,ax   ;儲存ax
	  
	pop ax     ;計算低位  dw型除以db型 結果是db型除法運算

	div cx
	mov cx,dx   ;餘數儲存在cx裡
	mov dx,bx   ;dx儲存的是最終結果的高位、
	ret
code ends
end start


結果: