汇编实验

汇编实验

对应第五章内容及练习

最大公约数

求两个数的最大公约数

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
汇编实验
汇编基础
汇编实验

汇编实验

对应basis-3的内容

Irvine32链接库

配置

首先准备好一个配置好masm的项目(正常可以写汇编的),下载好Irvine32(我的在D盘Irvine目录下D:\Irvine)
然后对project右键属性:

  • 链接器附加库目录中加入你安装好的路径(D:\Irvine;)
  • 链接器输入附加依赖项中加入Irvine32.lib(用32位,别忘了分号隔开)
  • 在Microsoft Macro Assemble中的include Paths 加上你的路径(D:\Irvine;)
    配置图1
    配置图2
    配置图3
Read more