X86-64 汇编语言编程:整数乘除与栈参数传递
1. 整数乘除示例
在这个示例中,我们将展示如何使用汇编语言进行整数的乘法和除法操作。涉及到的指令包括 imul (有符号乘法)、 idiv (有符号除法)、 movsxd (带符号扩展的移动)和 cdq (双字转换为四字)。
以下是 C++ 代码示例:
// Ch02_05.h
#pragma once
// Ch02_05_fasm.asm, Ch02_05_fasm.s
extern "C" void MulI32_a(int* prod1, long long* prod2, int a, int b);
extern "C" int DivI32_a(int* quo, int* rem, int a, int b);
// Ch02_05_misc.cpp
extern void DisplayResults(int test_id, int a, int b, int prod1,
long long prod2, int quo, int rem, int rc);
// Ch02_05_misc.cpp
#include <iostream>
#include "Ch02_05.h"
void DisplayResults(int test_id, int a, int b, int prod1,
long long prod2, int quo, int rem, int rc)
{
constexp
超级会员免费看
订阅专栏 解锁全文
66

被折叠的 条评论
为什么被折叠?



