本文为《汇编语言程序设计》配套实践。

1. 实验目的


  • 理解程序在CS和IP寄存器的控制下运行的过程
  • 学会由汇编语言源程序到可执行文件的生成过程,学会用Debug运行程序
  • 学会在程序中操作栈的方法
  • 学会用loop指令编制循环程序解决简单问题
  • 学会用bx和loop指令配合访问连贯的内存空间

2. 实验内容

任务1-编制第一个汇编程序

(1)将下面的程序保存为p1.asm,将其生成可执行文件p1.exe。

assume cs:code
code segment
mov ax,0123H
add ax,ax

mov ax,4c00h
int 21h
codesg ends
end

(2)在Debug中单步执行这个程序

  在实验报告中,截图说明编辑、编译、连接、运行的各个步骤。


提示:(1)以上程序中有一处错误,请按错误程序输入,体验一下语法错误的相关提示;(2)可参考视频“0402 由源程序到程序运行”和“0403 用Debug跟踪程序的执行”


任务2-栈的操作

  先编程序:

  (1)将10000H~1000FH这段空间当作栈,初始状态栈是空的(据此设置SS、SP);

  (2)设置AX=001AH,BX=001BH;

  (3)利用栈,交换AX和BX中的数据。

  然后再编译、连接、运行程序。


提示:可参考视频“0402 由源程序到程序运行”和“0403 用Debug跟踪程序的执行”


任务3-循环程序设计(1)

  编程序计算2^10,将最后结果保存在dx中

任务4-循环程序设计(2)

  编程序,用loop指令计算从1到100的所有整数相加的和,运算结果请保存到寄存器DX中。

任务5-用[bx]和loop联合访问连续的内存单元

  编程序,向内存0:200H到0:23FH依次传送数据0~63(3FH),即0:200H中为0,0:201中为1,……依此类推


提示:请参考教材中用[bx]和loop联合访问连续的内存单元