小甲鱼 发表于 2012-6-3 04:41:28

高级语法 repeat-until 的使用


程序功能如图(repeat-until实现):

repeat-until 格式:
.repeat
    循环体(当条件不满足时候执行)
.until(条件)

代码及详细注释:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; by 小甲鱼, http://www.fishc.com
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 功能:高级语法repeat-until的使用,累加1到100的和。
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
      .386
      .model flat,stdcall
      option casemap:none

include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib

    .data
bufferdb100 dup(0)
CapMsgdb'输出', 0
szFmt   db'1加到100的结果是:%d', 0
i       dw1
sum   dw0               ; 注意,结果5050不是一个字节可以存放的

    .code
start:
    .repeat
      mov ax, i
      add sum, ax
      inc i
    .until( i > 100 )
   
    xor eax, eax
    mov ax, sum
   
    invokewsprintf,       ; 格式化字符串输出函数,有点类似 printf
      addr buffer,      ; 存放字符串的缓冲区
      addr szFmt,         ; 格式化输出的格式
      eax
      
    invokeMessageBox,
      NULL,
      offset buffer,
      offset CapMsg,      
      MB_OK
      
    invokeExitProcess, 0; 结束进程
   
    end start

coolman 发表于 2012-6-3 05:01:52

{:2_32:} mark

clm~~ 发表于 2012-6-24 23:44:46

这个容易忘记······:Q

Seandor 发表于 2012-8-22 23:11:38

照着做了一遍,做过的感觉比看过来得深刻地多。

redking 发表于 2013-8-19 06:33:02

激动人心,无法言表!
页: [1]
查看完整版本: 高级语法 repeat-until 的使用