文字列を扱う
Main.cpp#include "stdafx.h" extern "C" void sample02(char* buff); int main() { char buff[10]; sample02(buff); printf("%s\n",buff); return 0; } Sample.asm;Windowsで命名規則を使用しない .model flat,c ;コード領域を宣言 .code ;void sample02(char* buff) sample02 PROC buff:DWORD MOV EAX,buff MOV EDX,'A' MOV [EAX],EDX MOV EDX,'B' MOV [EAX+1],EDX MOV EDX,'C' MOV [EAX+2],EDX XOR EDX,EDX MOV [EAX+3],EDX RET sample02 ENDP END アセンブラ側でbuffに"ABC"を書き込むソースだ。[]を使うと対象アドレスへ値を書き込むことが出来る。また、文字列の終端には0が必要となるのでDXレジスタをXORで0にして代入している。
2019/07/17 22:31