#include #include #include using namespace std; // 子程序 static uint16_t sum_u8(const uint8_t* base, uint16_t count) { uint16_t ax = 0; // 对应 MOV AX,0 while (count--) { // 对应 LOOP L1 ax += *base++; // 对应 ADD AL,[BX] / INC BX (进位由 16 位相加自然处理) } return ax; // 对应 计算结束返回 AX } int main() { // 对应 DAT 段 uint8_t X1[101]; for (int i = 0; i < 101; i++) { X1[i] = i; // 直接就0 - 100的sum吧,结果应该是5050 } uint16_t sum1 = 0; // 对应定义 Sum1(字型数) // 对应主程序中:取 X1 首址与长度,通过栈传给 SUM 并获取返回值 sum1 = sum_u8(X1, static_cast(sizeof(X1))); cout << sum1 << '\n'; return 0; }