汇编基础

汇编基础

高级过程

本章将介绍子程序调用的底层结构,重点集中于运行时的堆栈操作。本讲内容对C和C++程序员也是很有价值的,因为在调试程序运行于操作系统或设备驱动程序层的底层子程序时,他们也必须检查运行时的堆栈内容

Read more
汇编实验

汇编实验

对应第五章内容及练习

最大公约数

求两个数的最大公约数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.data
val1 DWORD 120
val2 DWORD 36
.code
mov eax, val1
mov ebx, val2
L1:
mov edx, 0
div ebx ;余数在EDX,商在EAX
cmp edx, 0
je L2
mov eax, ebx ;除数做被除数
mov ebx, edx ;余数做除数
jmp L1
L2:
mov esi, ebx ;ESI返回最大公约数

需要注意一个问题就是EDX的值(被除数高位),每次计算时需要将其置零,否则容易导致结果溢出(存储商或者余数的寄存器无法放得下商或者余数)

Read more
汇编基础

汇编基础

整数运算

本章将学习汇编语言的最大优势之一:基本二进制位移和循环位移技术。实际上,位操作是计算机图形学,数据加密和硬件控制的固有部分。

Read more
汇编实验
汇编基础