代码-内联汇编向int变量中输入字符报错的问题

问题描述

内联汇编向int变量中输入字符报错的问题

在VC内联汇编中,
myarray[]是个int型的数组
用循环来输入数组,以下是循环内的代码

C/C++ code

char inputformat[]="%d";

Assembly code

lea eax,myarray[ebx]; //
push eax; //
lea eax,inputformat; // achieve the number input
push eax; //

call scanf; //
add esp,8; //

输入数字都不会有问题,一旦输入字母,就会无限循环.请问如何处理这种问题啊?
谢谢各位汇编大神~

时间: 2024-09-25 18:13:17

代码-内联汇编向int变量中输入字符报错的问题的相关文章

内联汇编基础知识

几天看了孙原等几位仁兄关于汇编语言的几篇文章,颇感兴趣.于是查了查98版的MSDN中,其中也有几篇关于内联汇编的基础,索引字是asm.讲得不算太难,于是试着将其内容写下来了,特此贴来. 一.内联汇编简述 Visual C++ 6.0编译器下,内联汇编可以使用所有的Intel486处理器指令集.而且可以对目标处理器建立起伪指令来实现附加指令功能.内联汇编可以使用MASM编译器所允许的表达式,其中的一些表达式可以通过操作符和操作数的组合,对单精值进行运算. 虽然内联汇编可以访问C\C++中的数据变量

vc++-VC++内联汇编 变量未初始化问题

问题描述 VC++内联汇编 变量未初始化问题 char input; int input1=input; 我是这么写的..然后出现了代码未初始化的问题..input是需要输入的值.input1是输入的值中的整数.这么运行的话我之后的输出会是任意一个负的整数..求教 解决方案 没太搞明白你说的问题.你是想把input里的数字字符变成整数赋给input1吗? 如果是,可以这样: input1=input-'0'; 解决方案二: 一个字符型的值赋值给整型能对么- 解决方案三: push input1;

在Visual C++中使用内联汇编

一.内联汇编的优缺点 因为在Visual C++中使用内联汇编不需要额外的编译器和联接器,且可以处理Visual C++中不能处理的一些事情,而且可以使用在C/C++中的变量,所以非常方便.内联汇编主要用于如下场合: 1.使用汇编语言写函数: 2.对速度要求非常高的代码: 3.设备驱动程序中直接访问硬件: 4."Naked" Call的初始化和结束代码. //(."Naked",理解了意思,但是不知道怎么翻译,大概就是不需要C/C++的编译器(自作聪明)生成的函数初

vc++-VC++内联汇编要怎么将char 转换为int

问题描述 VC++内联汇编要怎么将char 转换为int 我的代码是先输入char格式..然后我选出其中的数字再转换为int格式最后算出平均值..要怎么做 解决方案 VC++中的CString.char.int类型转换VC CString,int,string,char*转换vc++中char*和CString转换 解决方案二: for(i=0; i< strlen(s); i++) { if(s[i] >= '0' && s[i] <= '9') }

代码-visual studio 内联汇编问题

问题描述 visual studio 内联汇编问题 #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { char message1[]="Input the number of times for looping in the range of 0-12:"; char message9[] = " The program will run"; char message10[] =

通过两个场景向初学者介绍内联汇编的基本用法和基本语法

对于 C++/C++ 程序员来说,内联汇编并不是一个新特性,它可以帮助我们充分利用计算能力.然而,大多数程序员很少有机会实际使用该特性.事实上,内联汇编只为特定的要求提供服务,在涉及先进的高层编程语言时尤其如此. 本文介绍了 IBM Power 处理器架构的两个场景.使用本文提供的示例,我们可以发现在什么地方应用了内联汇编. 场景 1:更好的库 C/C++ 编程语言支持逻辑运算.在本例中,http://www.aliyun.com/zixun/aggregation/6579.html">

最牛X的 GCC 内联汇编

正如大家知道的,在C语言中插入汇编语言,其是Linux中使用的基本汇编程序语法.本文将讲解 GCC 提供的内联汇编特性的用途和用法.对于阅读这篇文章,这里只有两个前提要求,很明显,就是 x86 汇编语言和 C 语言的基本认识. 1. 简介 1.1 版权许可 Copyright (C) 2003 Sandeep S. 本文档自由共享;你可以重新发布它,并且/或者在遵循自由软件基金会发布的 GNU 通用公共许可证下修改它;也可以是该许可证的版本 2 或者(按照你的需求)更晚的版本. 发布这篇文档是希

GCC 内联汇编 HOWTO

v0.1, 01 March 2003. 本 HOWTO 文档将讲解 GCC 提供的内联汇编特性的用途和用法.对于阅读这篇文章,这里只有两个前提要求,很明显,就是 x86 汇编语言和 C 语言的基本认识. 1. 简介 1.1 版权许可 Copyright (C) 2003 Sandeep S. 本文档自由共享:你可以重新发布它,并且/或者在遵循自由软件基金会发布的 GNU 通用公共许可证下修改它:也可以是该许可证的版本 2 或者(按照你的需求)更晚的版本. 发布这篇文档是希望它能够帮助别人,但是

关于内联汇编的几个技巧

有时我们的程序需要一些很高的执行效率或者执行系统底层的功能模块,这些关键的部分我们可以采用内联汇编直接插入汇编指令来达到我们的要求,以下是几个技巧与大家共同探讨. 1.内联汇编嵌入VC语句: 在VC中内联汇编非常方便,只需要按照如下格式 __asm{ //汇编语句 } 请看如下示例代码 void CAlcmemDlg::OnButton3() { DWORD d=(m_size*1024*1024)/sizeof(DWORD); DWORD*p=(DWORD*)m_p; DWORD s; m_p