鱼C论坛

 找回密码
 立即注册
查看: 3019|回复: 4

[已解决]关于div的一些疑惑

[复制链接]
发表于 2017-7-3 16:16:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在写一个简单除法计算器的时候
16位被除数除以八位除数
其中商在al 余数在ah
假如我没有push ax将其保存下来
先后输出al ah时候
al能正常输出 但是ah却不能
想知道是被覆盖了吗
为什么呢
最佳答案
2017-7-4 10:33:14
这是在自问自答吗?
不push,ah被改变了啊,ah作为int 21h的功能号,还存余数等等,不保存,怎么会正确输出呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-3 16:21:11 | 显示全部楼层
最好还是贴代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-3 16:40:08 | 显示全部楼层
只截取了除法这一段代码 如下
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
   
    MOV AH,1
    INT 21H
    CMP AL,27
    JZ ABC
    MOV BL,AL ;输入bl
   
    MOV AH,1  ;输入符号
    INT 21H
    CMP AL,'+'
    JZ JIA
    cmp AL,'-'
    JZ JIAN
    CMP AL,'*'
    JZ CHENG
    CMP AL,'/'
    JZ CHU
CHU:
    MOV AH,1
    INT 21H
    SUB AL,'0'
    SUB BL,'0'
    MOV CL,AL
    MOV DL,'=' ;输出=
    MOV AH,02H
    INT 21H
    MOV AL,BL ;被除数 al
    mov AH,0
    DIV CL
    ADD AL,'0';输出商
    MOV DL,AL  
    MOV AH,02H
    INT 21H
    ADD AH,'0';输出余数
    MOV DL,AH
    MOV AH,02H
    INT 21H
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    JMP START


ABC: MOV AH,4CH
    INT 21H
   
CODES ENDS
    END START
结果ah好像是被覆盖了 不能输出正确的余数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-3 16:41:22 | 显示全部楼层
但是不大清楚为什么会这样 如下是改进后的
CHU:
    MOV AH,1
    INT 21H
    SUB AL,'0'
    SUB BL,'0'
    MOV CL,AL
    MOV DL,'=' ;输出=
    MOV AH,02H
    INT 21H
    MOV AL,BL ;被除数 al
    mov AH,0
    DIV CL
    PUSH AX
    ADD AL,'0';输出商
    MOV DL,AL  
    MOV AH,02H
    INT 21H
    MOV DL,'-'
    MOV AH,02H
    INT 21H
    POP AX
    ADD AH,'0';输出余数
    MOV DL,AH
    MOV AH,02H
    INT 21H
    MOV DL,0AH
    MOV AH,02H
    INT 21H
    JMP START
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-4 10:33:14 | 显示全部楼层    本楼为最佳答案   
这是在自问自答吗?
不push,ah被改变了啊,ah作为int 21h的功能号,还存余数等等,不保存,怎么会正确输出呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 22:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表