鱼C论坛

 找回密码
 立即注册
查看: 1718|回复: 0

[技术交流] 实验10-2

[复制链接]
发表于 2022-1-1 22:41:36 | 显示全部楼层 |阅读模式

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

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

x
assume cs:code

code segment
start:
        mov ax,4247h
        mov dx,000fh
        mov cx,0ah
        call divdw

        mov ax,4c00h
        int 21h

divdw:
        mov bx,ax
        mov ax,dx
        mov dx,0  ;; 以上三步则是 计算 H/N, 之后ax=int(H/N), dx=rem(H/N)
        div cx
    ; 因为当前ax中存放的是 int(H/N),相当于存放的是高位的数据
    ; 所以下面这3个 xor 操作是将高位的值放到bx中,然后再将 L 的数据放到ax中
        xor ax,bx ; 交换 ax和bx 的值
        xor bx,ax ; 交换 ax和bx 的值
        xor ax,bx ; 交换 ax和bx 的值
    ; 交换的目的其实只是为了减少空间的使用,不使用多余的内存来存储数据
        div cx
    ; 这一步之后,存放的是 ax=(rem(H/N)*65536+L)/N 的结果
    ;                  dx=余数
   

    ; 将高位的结果放到dx中
    xor dx,bx
    xor bx,dx
    xor dx,bx
   
        mov cx,bx ; 将余数存入cx
        ret

code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 01:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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