简答题
1. 举例说明三种不同的指令助记符
mov add mul 不区分大小写
2. 什么是调用规范,如何在汇编语言中声明并使用它
.model flat,stdcall
3. 如何在程序中为堆栈预留空间
.stack 4096
4. 说明为什么汇编器语言不太正确
从汇编语言源文件到执行要经过 编辑 汇编 链接 执行几个过程,有以下步骤:
(1).使用文本编译器创建ASCII文件,也就是源文件。
(2).汇编器读取源文件,并生成目标文件,或者,也会生成列表文件
(3).链接器读取并检查目标文件,寻找程序中对链接库的调用,并从连接库中复制被请求的过程,生成可执行文件
(4).操作系统加载可执行程序读入内存,并使CPU分支该程序的起始地址。
5. 说明大端序与小端序之间的区别,并在网上查找这些术语的起源
小端序中最低有效字节放在第一个内存地址中。 假设有DWORD 12345678h分配的起始地址为0000,则其最低有效字节78h放入0000,56h放入0001。
6. 为什么在代码中使用符号常量而不是整数常量
符号常量是用符号来代替数值,通过合理的命名以便于理解代码。
7. 源文件和列表文件的区别是什么
源文件是ASCII编码的程序源代码, 列表文件包括源文件的副本,行号每条指令的数字地址,每条指令的机器代码字节(十六进制)以及符号表。
符号表中包含了程序中所使用的所有标识符名称,段和相关信息。
指令的数字地址是相对程序占用的起点而言的,从0000 0000开始。
Add Two asm文件
.386
.model flat,stdcall
.stack 4096
.data
sum DWORD 0ah
.code
main PROC
mov eax,3
add eax,4
main ENDP
end main
vs2017生成Add Two的列表文件
Microsoft (R) Macro Assembler Version 14.16.27031.1 06/18/19 13:16:32
a.asm Page 1 - 1
.386
.model flat,stdcall
.stack 4096
00000000 .data
00000000 0000000A sum DWORD 0ah
00000000 .code
00000000