• 实验目的

      学习如何编写,调试具有多个段的程序。

  • 实验设备与环境

计算机

DOS操作系统或 Windows 操作系统

MASM.EXE, LINK.EXE, DEBUG.COM 或宏汇编集成环境

  • 实验内容、程序清单及运行结果

编程:在屏幕中间分别显示绿色,绿底红色,白底蓝色的字符串‘welcome to masm!’。

代码及分析如下:

data segment

      db 'welcome to masm!'

data ends

 

stack segment;用于逆序暂存生成的结果,相当于中转

      db 32 dup (0)

stack ends

 

code segment

assume cs:code,ss:stack,ds:data

 

start:   

      mov ax,data

      mov ds,ax

      sub bx,bx

 

      mov ax,stack

      mov ss,ax

      mov sp,32

 

      mov cx,7

      ;设置welcome

s:   mov al,ds:[bx]

      mov ah,00000010B

      push ax;暂存入栈,后期逆序输出屏幕

      inc bx

      loop s

 

      ;设置空格

      mov al,ds:[bx]

      mov ah,0

      push ax;暂存入栈,后期逆序输出屏幕

      inc bx

 

      ;设置to

      mov cx,2

a:   mov al,ds:[bx]

      mov ah,00100100B

      push ax;暂存入栈,后期逆序输出屏幕

      inc bx

      loop a

 

      ;设置空格

      mov al,ds:[bx]

      mov ah,0

      push ax;暂存入栈,后期逆序输出屏幕

      inc bx

 

      ;设置masm!

      mov cx,5

w:  mov al,ds:[bx]

      mov ah,01110001B

      push ax

      inc bx

      loop w

 

      ;使屏幕偏移量为屏幕中央

      mov ax,0b800h

      mov ds,ax

      mov bx,2014;使屏幕偏移量为屏幕中央

 

      ;从栈中把数据逆序读取到屏幕

      mov cx,16

f:    pop ds:[bx]

      sub bx,2

      loop f

 

      mov ax,4c00h

      int 21h

 

code ends

 

end start

 

运行截图:

汇编语言(第三版)王爽著(实验九)根据材料编程

  • 实验结论、实验体会:

这是一个现学现用的实验题,但是逻辑都是以前的。

从大方面看,对每个单词的操作,实现每个单词不同的效果。从小方面看,每实现一个字符的效果就暂存到栈中,但完成了数据的处理,然后定位屏幕显示位置,将栈中的数据逆序的输出到屏幕中,完成实验要求

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-03
  • 2022-12-23
  • 2022-01-31
  • 2021-05-30
  • 2021-09-04
  • 2021-09-08
  • 2022-12-23
相关资源
相似解决方案