arrays - 汇编x86中数组中整数的最长运行
问题描述
我无法在 x86 程序集的数组中找到最长的整数。我有一个要传入的数组,以及数组的大小,我认为我的逻辑已经步入正轨,只是无法弄清楚最后的步骤。任何帮助表示赞赏。这是我到目前为止的代码:
int Longest_Run(int nums[], int siz) {
//
int returnValue = 0;
int freq[101] = { 0 }; //if needed
int arr_length = 0;
arr_length = sizeof(nums) / sizeof(int); //WRONG
__asm {
//LONGEST RUN. Return value to caller :
MOV ECX, siz // arr_length //For looping
//LEA ESI, nums //ptr to array
mov ESI, nums //ptr to array
//LEA EDI, nums //ptr to array
MOV EBX, 0 //Frequency counter
MOV EAX, [ESI] //First array int in SI
L1:
CMP EAX, [ESI] //Compare 1st int with 1st int
JE L2
JMP L3
L4:
LOOP L1
JMP CLEAR
L2 : //If equal
INC EBX //Inc counter
ADD ESI, 4 //Inc to 2nd item in array
MOV EAX, [ESI] //Move 2nd item into AX
JMP L1
L3 :
PUSH EBX // Puts counter int on stack
MOV EBX, 0 // Clears BX to start over
ADD ESI, 4 //Inc to 3rd item in array
MOV EAX, [ESI] //Move 3rd item into AX
JMP L4
CLEAR:
POP EDX
MOV EDX, returnValue
//END
}
return returnValue;
}
有什么想法或指导吗?
解决方案
推荐阅读
- r - 使用 rollapply 计算每周百分比变化
- identityserver4 - 解密 Identity Server 中的共享密钥
- javascript - 为什么控制台显示 js 代码,即使我没有在单独的文件中?
- java - 使用 Spring Boot 和 Thymeleaf 上传多个文件
- css - React native:试图在滚动时隐藏搜索栏
- javascript - 如果目标平台是 Raspberry Pi OS (arm),则禁用代码行 (JavaScript/QML)
- angular - 带有 AAD 的 Azure Function Cors
- python - 在上下文之外使用烧瓶变量
- android - 错误“请在编译 kodi 时将 gnulib freadahead.c 移植到您的平台
- azure - 如何使用 C# 或任何其他语言触发 Synapse Analytics Workspace 管道?