Tag: masm

汇编语言(x86):如何创build一个循环来计算斐波那契数列

我正在使用Visual Studio 2013 Ultimate在MASM中编程汇编语言(x86)。 我想用一个数组来计算n个元素的斐波那契数列。 换句话说,我试图去一个数组元素,获取它之前的两个元素,将它们加起来,并将结果存储在另一个数组中。 我无法设置索引寄存器来完成这项工作。 我有我的程序设置像这样: TITLE fibonacci.asm INCLUDE Irvine32.inc .data fibInitial BYTE 0, 1, 2, 3, 4, 5, 6 fibComputed BYTE 5 DUP(0) .code main PROC MOVZX si, fibInitial MOVZX di, fibComputed MOV cl, LENGTHOF fibInitial L1: MOV ax, [si – 1] MOV dx, [si – 2] MOV bp, ax + dx […]

在Visual Studio中从asm调用C标准库函数

我在Visual Studio中创build的asm项目(Win10 x64,Visual Studio 2015)中调用C函数时遇到问题。 项目由一个asm文件组成: .586 .model flat, stdcall option casemap:none includelib msvcrt.lib ExitProcess PROTO return:DWORD extern printf:near .data text BYTE "Text", 0 .code main PROC push offset text call printf add esp,4 invoke ExitProcess,0 main ENDP end main 当我build立项目,链接器输出错误: 在函数_main @ 0中引用LNK2019未parsing的外部符号_printf时出错 链接器输出参数: /OUT:"C:\Users\apple\Documents\SP_Lab7\Debug\SP_Lab7_Demo.exe“/ MANIFEST:NO / NXCOMPAT /PDB:"C:\Users\apple\Documents\SP_Lab7\Debug\SP_Lab7_Demo.pdb”/ DYNAMICBASE “kernel32.lib”“user32.lib”“gdi32.lib”“winspool.lib”“comdlg32.lib”“advapi32.lib”“shell32.lib”“ole32.lib”“oleaut32.lib”“uuid.lib” “odbc32.lib”“odbccp32.lib”/ MACHINE:X86 / […]

引用内存位置的内容。 (x86寻址模式)

我有一个内存位置包含一个字符,我想与另一个字符比较(它不在堆栈的顶部,所以我不能只是pop它)。 我如何引用一个内存位置的内容,以便我可以比较它? 基本上,我怎样才能在语法上做到这一点。