汇编语言实验报告
(实验一)
一. 实验目的
1. 掌握汇编语言程序的上机步骤
(1 )用编辑程序(如 EDIT、记事本等)编辑汇编语言源程序(建立.ASM 文件)
(2 )用 MASM 程序产生 OBJ 文件
(3 )用 LINK 程序产生 EXE 文件
(4 )程序的运行(用 DEBUG 或在 DOS 下直接运行)
2. 掌握 DEBUG 的使用方法
二. 程序说明
1. 在数据段 DATA 中有两个字数据 X 和 Y, 假设 X=1122H, Y=3344H, 编程求两个字
的和,结果存放到 Z 单元中.
2. 从 SOURCE_BUFFER 单元开始存放了 20 个字母 A, 编程将这 20 个字母 A 的字符
串传送到 DEST_BUFFER 开始的单元中.
3. 从 SOURCE_BUFFER 单元开始存放了 20 个字母 A, 编程将这 20 个字母 A 的字符
串向下移 10 个单元.
三. 设计思想
根据串指令和编程方法将源代码写好后保存为 asm 文件并在 DOSBox 中进行操作
四. 程序代码
1.data segment
x dw 1122h
y dw 3344h
z dw ?
data ends
code segment
assume cs:code,ds:data
main proc far
start:push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
mov ax,x
add ax,y
mov z,ax
ret
main endp
code ends
end start
segment
db
20 dup('A')
segment
db
20 dup( ? )
2.
data
source_buffer
data ends
extra
dest_buffer
extra ends
code segment
main proc far
assume cs:code,ds:data,es:extra
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov ax,extra
mov es,ax
lea si,source_buffer
lea di,dest_buffer
cld
mov cx,20
rep movsb
ret
main endp
code ends
end start
3.
data
source_buffer
data ends
extra
dest_buffer
extra ends
code segment
main proc far
segment
db
20 dup('A')
segment
db
20 dup( ? )
assume cs:code,ds:data,es:extra
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov ax,extra
mov es,ax
lea si,source_buffer
lea di,source_buffer+10
cld
mov cx,20
rep movsb
ret
main endp
code ends
end start
五. 结果分析