汇编学习两周有余,边听鱼C视频,边自己看书,按照书上的检测点和实验 一道道的做下来,终于感觉到自己的进步,本打算从开始的第一个程序开始记录,但CSDN一直无法申请新博客,今天终于弄好。
解完这道 《除法溢出问题》,顺便把代码放上来,请各位大神指正,我是一个小白,渴望不断进步!谢谢
assume cs:code,ds:data
data segment
db 0,0,0,0,0,0,0,0
data ends
code segment
start:
mov ax,4240h
mov dx,0fh
mov cx,0ah
call divdw
mov ax,4200h
int 21h
divdw:
push bx
mov bx,ax
mov ax,dx
div cl ;高16位除以除数cl,商放在Al,余数放在AH
mov byte ptr ds:[0],al ;将高位的商放入 数据段
mov dx,0h ;商放入DX
mov dl,ah ;将高位的余数,放入dx做位下次除法的高16位
mov ax,bx ;低16位的被除数出栈
div cx ;除法运算后,ax存放商,dx存放余数
mov cx,dx
mov dx,0h
mov dl,ds:[0]
pop bx
ret
code ends
end start