8086汇编,求公约数:
(1)输入两个小于100的十进制正整数
(2)求出这两个数的所有公约数
(3)求出这两个数的平方差,若是负数要输出负号
(4)计算两个数各占和的百分比,并按照“%”的格式输出(小数点后保留两位)
(5)数据的输入和结果的输出要有必要的提示
(6)要用到子程序
8086,汇编求公约数
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
阿里嘎多学长 2025-12-28 13:17关注阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
问题分析
- 问题涉及到8086汇编语言的编程
- 需求包括:
- 输入两个小于100的十进制正整数
- 求出这两个数的所有公约数
- 求出这两个数的平方差
- 计算两个数各占和的百分比
解决方案
由于问题涉及到汇编语言的编程,具体的解决方案将依赖于8086汇编语言的语法和指令集。以下是核心部分的解决方案:
; 读入两个整数 mov ax, 0 mov bx, 0 mov cx, 0 mov dx, 0 mov ah, 1 int 21h mov bl, al mov ah, 1 int 21h mov bh, al ; 求出公约数 mov ax, bl mov bx, bh mov cx, 0 loop1: cmp ax, bx jge loop2 mov dx, 0 div bx cmp dx, 0 jne loop1 inc cx loop loop1 loop2: mov ah, 2 mov dl, cx int 21h ; 求出平方差 mov ax, bl sub ax, bh jns square_diff neg ax square_diff: mov ah, 2 mov dl, ax int 21h ; 计算百分比 mov ax, bl add ax, bh mov bx, ax mov ax, bl mov dx, 0 div bx mov cx, 0 loop3: cmp dx, 0 jne loop4 inc cx loop loop3 loop4: mov ah, 2 mov dl, cx int 21h mov ah, 2 mov dl, 37h int 21h注意
- 该解决方案假设使用的是DOS环境下的8086汇编语言
- 该解决方案仅提供了核心部分的解决方案,具体的实现可能需要根据具体的需求进行调整
- 该解决方案不包括输入输出的具体实现,需要根据具体的需求进行调整
解决 无用评论 打赏 举报