win32汇编以.386指令的MASM32题目做题记录 -- 循环结构

//最大公约

.386
.model flat,stdcall
option casemap:none

include kernel32.inc
includelib kernel32.lib
includelib msvcrt.lib

scanf PROTO C:DWORD,:vararg
printf PROTO C:DWORD,:vararg

.data
InFmt BYTE '%d %d',0
OutFmt BYTE '%d',0AH,0
i DWORD 1

.data?
x DWORD ?
y DWORD ?
moded_1 DWORD ?
moded_2 DWORD ?
moded_ok DWORD ?
dived DWORD ?
temp DWORD ?

.code
start:
invoke scanf,ADDR InFmt,ADDR x,ADDR y
.while EAX != -1
  MOV ECX,1
  MOV EBX,y
  .IF x < EBX
    .while ECX <= x
      MOV temp,ECX
      MOV EAX,x
      CDQ
      IDIV ECX
      MOV moded_1,EDX
      MOV EAX,y
      CDQ
      IDIV ECX
      MOV moded_2,EDX
      .IF  moded_1 == 0 && moded_2 == 0
        MOV moded_ok,ECX
        MOV ECX,temp
      .ENDIF
      Inc ECX
    .endw
  .ELSE
    .while ECX <= y
      MOV temp,ECX
      MOV EAX,x
      CDQ
      IDIV ECX
      MOV moded_1,EDX
      MOV EAX,y
      CDQ
      IDIV ECX
      MOV moded_2,EDX
      .IF  moded_1 == 0 && moded_2 == 0
        MOV moded_ok,ECX
        MOV ECX,temp
      .ENDIF
      Inc ECX
    .endw
   .ENDIF
invoke printf,ADDR OutFmt,moded_ok
invoke scanf,ADDR InFmt,ADDR x,ADDR y
.endw
invoke ExitProcess,0
end start

**

//最小公倍数

**
.386
.model flat, stdcall
include kernel32.inc
includelib kernel32.lib
includelib	msvcrt.lib				;引用C库文件
printf PROTO C:ptr sbyte,:vararg	;C语言printf函数原型声明
scanf PROTO C:ptr sbyte,:vararg	;C语言scanf函数原型声明
option casemap :none 
 ;*【*/
.data
InFmt BYTE '%d %d',0
OutFmt BYTE '%d',0AH,0
i DWORD 1

.data?
x DWORD ?
y DWORD ?
muled DWORD ?
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值