MASM을 사용하여 palindrome을 확인하는 방법에 대해 고민하고 있습니다. #include <iostream>
#include <cstring>
#include<string>
#include <algorithm>
using namespace std;
extern "C"
char test(char*, int);
int main()
여기에 무슨 일이 일어나고 있는지, 스택에 무엇이 있는지, 레지스터 ESP, EBP 및 SS가 가리키는 곳을 이해하는 데 어려움이 있습니다. 여기에있는 코드의 지점에서 여기 include \masm32\include\masm32rt.inc
.data?
value DWORD ?
.code
start:
push 42
push 5
MASM이 내장 된 Visual Studio 2015에서 다음 코드를 실행하려고합니다. Irvine 라이브러리 파일을 프로그램에 연결하려고합니다. 그러나 다음과 같은 오류가 발생합니다. 여기 A2C \Irvine\SmallWin.inc(11)or specified size
A2C \Irvine\SmallWin.inc(12)or specified size
asciiCode이라는 dw 변수에 숫자를 저장 한 매우 간단한 프로그램이 있습니다. 나는이 값, A로 표시되는 ASCII 문자를 인쇄 할 수 masm32rt.inc에 선언 된 print 매크로를 사용하기를 원하지만이 작업을 수행하려고 시도하면 프로그램 충돌 : .386
option casemap:none
include \masm32\include\m
어셈블리에서 한 가지 문제가 있습니다. 변수 points db 65을 만듭니다. 시작 값은 65이지만 프로그램에서이 값을 표시하려면 invoke CreateWindowEx,0,ADDR classStatic,ADDR points, WS_CHILD or WS_VISIBLE,100,100,50,50,hWnd,0,hInstance,0
을 반환합니다. 이 예에서
보안 대학 프로젝트로서 PE 감염자를 코딩해야합니다. 하지만 저는 어셈블리 초보자입니다. 따라서 변수를 처리하는 방법에 대한 내 무지로 인해 여러 번의 충돌이 있습니다. 나는 일반 프로그램에서 초기화 된 변수에 대해 . 데이터 섹션과 . 데이터가 있다는 것을 알고있다. 초기화되지 않은 변수는입니다. 그러나이 경우 모든 튜토리얼에서는 변수가 . 코드 섹션에
나는이 코드는 나를 OFFSET 연산자 다음 OFFSET 표현에 대한 A2098 잘못된 연산 에러 부여합니다 coppystring proc uses esi edi ecx source:dword,dest:dword
mov esi, OFFSET source
mov edi, OFFSET dest
mov ecx
현재 Visual Studio를 사용 중입니다. 나는 Win32 응용 프로그램을 구축하고 C 함수에서 프로 시저를 호출 할 필요가 필요하지만, 난 항상 빌드 오류가 점점 오전 : 오류 3 오류 LNK1120 : 나는 간단한에 이르기까지 모든 것을 감소 1 개 확인되지 않은 외부 주 기능 및 간단한 .asm 파일 하나의 프로 시저와 나는 여전히 동일한
프로그램이 제대로 컴파일되지만 기본 창을 만들지 못합니다. 특히 CreateWindowEx이 실패하고 "창을 만들지 못했습니다."라는 메시지가 인쇄됩니다. 내가 뭘 잘못하고 있는지 알 수 있습니까? 나는 조립에 관한 Kip Irvine의 책을 거의 정확하게 따라 가고 있지만, 나는 뭔가를 놓치고있는 것 같다. 편집 : 권장 사항을 기반으로 코드를 업데이트했
DLL 어셈블러에서 C++ 프로그램으로 float 값을 반환하는 데 문제가 있습니다. xmm0 레지스터에서 처리해야한다고 생각합니다. 틀렸습니까? 여기 #include "stdafx.h"
#include<windows.h>
#include<iostream>
#include <cstdio>
#include <thread>
#include <vecto