王爽 汇编 实验10.2

一、实验要求

 二、代码实现

 1 assume cs:code,ss:stack
 2 
 3 stack segment
 4     dw 8 dup(0)
 5 stack ends
 6 
 7 code segment
 8 start:      mov ax,stack
 9             mov ss,ax
10             mov sp,10H
11             mov ax,4240H
12             mov dx,000FH
13             mov cx,0AH
14             call divdw
15             mov ax,4c00h
16             int 21h        
17             
18 divdw:      push ax        ;保存低16位数据
19             mov ax,dx    ;传递高16位给ax
20             mov dx,0    ;dx置0是为了不影响下边除法的余数,使高16位为0
21             div cx        ;H/N=高16位数据/除数
22             
23             mov bx,ax    ;ax=bx的值位(int)H/N的商,dx的值位(rem)H/N的余数
24             pop ax        ;取出低16位的值
25             
26             div cx        ;L/N,16位除法的时候默认被除数DX为高16位,AX为低16位
27             mov cx,dx    ;计算处的余数保存到cx中
28             mov dx,bx    ;结果的高16位数据存储在dx中
29             
30             ret
31 code ends
32 end start

三、上机调试

 

posted @ 2020-04-02 13:07  Tony.Jia  阅读(314)  评论(0)    收藏  举报