VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 99|回复: 0

[讨论] win32汇编仿C++循环语句for do- while while

[复制链接]
75_avatar_middle
最佳答案
18 
online_supermod 发表于 2020-5-10 00:16:10 | 显示全部楼层 |阅读模式
本帖最后由 wl1383838438 于 2020-5-10 00:22 编辑

语句过于基础,故不在详细注释,需要详细注释请安第一条帖子!
#include<iostream>
using namespace std;
int main()
{
       
        for (int b = 0; b < 3;)
        {
                cout << "b循环中" << endl;

        }
        return 0;
       
}
//--------------------------------------------------------分割线  下面是win32汇编仿c++ for语句循环

.386
.model flat,stdcall
option casemap:none

include C:\masm32\include\windows.inc
include C:\masm32\include\user32.inc
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\kernel32.lib

.data
a                    dd        1
szCaption            db      '循环',0
szText               db       '循环',0

.code
            

start:
            mov eax,a
            jmp code1
            ;-----------------------------
            code2:
            mov eax,a
            add eax,1
            mov a,eax
            ;-----------------------------
            code1:
            cmp a,3
            jg CodeEnd
            invoke MessageBox,0,offset szText,offset szCaption,MB_OK
            jmp code2;跳到code从新开始执行直到cmp a,3大于时在jg处跳出
            ;-----------------------------
            CodeEnd:
             invoke ExitProcess,0
end start
//--------------------------------------------------------------分割线---


C++源码 do while循环语句


#include<iostream>
#include<windows.h>
using namespace std;
int main()
{
        int a = 5;
       
        do
        {
                cout << "test" << endl;

        } while (a < 3);
        Sleep(5000);
       

        return 0;
       
以下是win32汇编仿
win32汇编仿C++      do  while函数

.386
.model flat,stdcall

option casemap:none
include C:\masm32\include\windows.inc
include C:\masm32\include\user32.inc
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\kernel32.lib

.data
a              dd        5
szCaption      db         '循环',0
szText         db         '循环中',0

.data?

.code

start:
       mov eax,a
      
       jmp code1
       ;---------------------
       code2:
       mov eax,a
       add eax,1
       mov a,eax
       ;---------------------
       code1:
       invoke MessageBox,0,offset szText,offset szCaption,MB_OK
       cmp a,3
       jg CodeEnd   
      
       jle code2
       ;---------------------
       CodeEnd:
       invoke ExitProcess,0
end start

---------------------------------------下面是仿while-------------------------------------------
.386
.model flat,stdcall

option casemap:none
include C:\masm32\include\windows.inc
include C:\masm32\include\user32.inc
includelib C:\masm32\lib\user32.lib
include C:\masm32\include\kernel32.inc
includelib C:\masm32\lib\kernel32.lib

.data
a              dd        1
szCaption      db         '循环',0
szText         db         '循环中',0

.data?

.code

start:
       mov eax,a
      
       jmp code1
       ;---------------------
       code2:
       mov eax,a
       add eax,1
       mov a,eax
       ;---------------------
       code1:
      
       cmp a,3
        jg CodeEnd
       invoke MessageBox,0,offset szText,offset szCaption,MB_OK
        
      
       jmp code2
       ;---------------------
       CodeEnd:
       invoke ExitProcess,0
end start




上一篇:win32汇编的自加与VS的自加
下一篇:win32api的窗口注册和win32汇编窗口注册

本帖被以下淘专辑推荐:

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-6-2 18:34

Powered by CcTry.CoM

© 2009-2020 cctry.com

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