leader4 发表于 2018-5-18 14:58:22

《王爽汇编》第十章实验10-2

花了点时间,把实验10的第二小问也做了。这次顺利了很多。
但要注意一下对公式的理解。
一开始采用了错误的压栈方式进行32位加法。。。
后来想明白了,那个*65536其实就是在区分高位和低位,这样低位置零,再相加也就不会有进位问题。
于是顺利解出。
assume cs:codeseg,ss:stack

stack segment
dw 8 dup (0)
stack ends

codeseg segment
start:        mov ax,stack
                mov ss,ax
                mov sp,16
                mov ax,4240h
                mov dx,000fh
                mov cx,0ah
               
                call divdw
               
                mov ax,4c00h
                int 21h

divdw:        mov bx,ax
                mov bp,dx
                mov ax,bp
                mov dx,0
                div cx
                push ax

                mov ax,bp
                mov dx,0
                div cx
                mov ax,bx
                div cx
                mov cx,dx
                pop dx
                ret
               
codeseg ends
end start
页: [1]
查看完整版本: 《王爽汇编》第十章实验10-2