实验2 汇编源程序编写与汇编、调试
实验2 汇编源程序编写与汇编、调试
四、实验结论
1. 实验任务1
-
创建ex1.asm
-
进行编译链接运行
![]()
-
使用debug工具对程序进行调试
-
使用d命令查看程序段前缀PSP所占的256个字节
![]()
-
结合可执行文件中寄存器CX的值,使用u命令对ex1.exe进行精确反汇编
CX寄存器中值为31,表示程序的长度
![]()
-
使用g命令执行到程序退出执行之前
![]()
-
2. 实验任务2
-
进行编译链接运行
![]()
-
使用debug工具对程序进行调试
-
使用u命令对ex2.exe进行精确反汇编
![]()
-
灵活使用t命令、p命令、g命令,对ex2.exe进行调试
![]()
![]()
![]()
-
修改后重新编译链接运行
![]()
-
结合上述实验和观察,分析、对比ex2.asm和ex1.asm,它们实现的是否是相同的功能和效果?在具体实现上有什么不同?
修改后的功能不一样,原来修改8个内存单元,修改后变为修改16个内存单元。
具体实现上,ex1是使用手动制定每个内存单元复制,ex2使用loop循环赋值,并且每次操作两个内存单元。
-
3. 实验任务3
- 汇编源程序
; ex3.asm
assume cs:code
code segment
mov ax, 0b800H
mov ds, ax
mov bx, 07b8H
mov ax, 0237H
mov cx, 16
s: mov [bx], ax
add bx, 2
loop s
mov ah, 4ch
int 21h
code ends
end
- 运行结果截图

- 把填充的字数据,从0237H 改成0239H,再次保存后,汇编、链接、运行,观察结果。

- 把填充的字数据,从0237H 改成0437H,再次保存后,汇编、链接、运行,观察结果。

- 结论
高字节存放着显示字符的样式属性,低字节存放着字符本身ascii码。
4.实验任务4
编写完整汇编源程序,实现向内存0:2000:23F依次传送数据063(3FH)。
必做
源代码:
; ex4.asm
assume cs:code
code segment
mov ax, 0H
mov ds, ax
mov bx, 0200H
mov al, 0H
mov cx, 40H
s: mov [bx], al
add bx, 1
add al, 1
loop s
mov ah, 4ch
int 21h
code ends
end

选做
源代码:
; ex4_2.asm
assume cs:code
code segment
mov ax, 0H
mov ss, ax
mov ax, 240H
mov sp, ax
mov cx, 20H
mov bx, 3F3EH
s: push bx
sub bl, 2
sub bh, 2
loop s
mov ah, 4ch
int 21h
code ends
end

5.实验任务5
源代码:
; ex5.asm
assume cs:code
code segment
mov ax, cs
mov ds, ax
mov ax, 0020h
mov es, ax
mov bx, 0
mov cx, 18
s: mov al, [bx]
mov es:[bx], al
inc bx
loop s
mov ax, 4c00h
int 21h
code ends
end
运行结果:
0:200处数据与代码段处相同

第一空是需要将数据段指向代码段所在段位置
第二空是通过mov ax, 4c00h与程序头的内存地址段差值决定的











浙公网安备 33010602011771号