欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

汇编实验二

程序员文章站 2024-03-23 22:37:04
...

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

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

assume cs:code

code segment

         mov ax,0123H

         add ax,ax

 

         mov ax,4c00h

         int 21h

code ends

end

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

(写编辑、编译、连接、运行各步骤的命令。贴图说明实验过程)

汇编实验二

汇编实验二

 

任务2-栈的操作

  1. 将10000H~1000FH这段空间当作栈,初始状态栈是空的(据此设置SS、SP);
  2. 设置AX=001AH,BX=001BH;
  3. 利用栈,交换AX和BX中的数据。

(下面列出源代码,并截图说明运行的结果)。

assume cs:code
code segment
     mov ax,1000h
     mov ss,ax
     mov sp,000fh
     
     mov ax,001ah
     mov bx,001bh

     push ax
     push bx

     pop ax
     pop bx

     mov ax,4c00h
     int 21h
code ends
end
汇编实验二

汇编实验二

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

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

(下面列出源代码,并截图说明运行的结果)。

assume cs:code
code segment
     mov dx,2
     mov cx,9
s:   add dx,dx
     loop s

     mov ax,4c00h
     int 21h
code ends
end

汇编实验二

 

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

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

(下面列出源代码,并截图说明运行的结果)。

assume cs:code
code segment
     mov dx,0
     mov ax,1
     mov cx,100
s:   add dx,ax
     inc ax
     loop s

     mov ax,4c00h
     int 21h
code ends
end

汇编实验二

 

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

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

(下面列出源代码,并截图说明运行的结果)。

assume cs:code
code segment
     mov ax,0h
     mov ds,ax
     mov al,0
     mov cx,64
     mov bx,200h
s:   mov [bx],al
     inc bx
     inc al
     loop s

     mov ax,4c00h
     int 21h
code ends
end

汇编实验二