|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
花了点时间,把实验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
复制代码 |
|