汇编语言实验4-利用跳转指令构造循环

简介: 1. 实验目的能分析各种跳转指令构成的程序的运行原理 会用跳转指令构造循环解决应用问题 体验显示缓冲区的要求2. 实验内容任务1-奇怪的程序?  人工分析下面的程序,然后再在Debug程序中单步执行,观察每一步完成后的结果,并解释出现的现象。   程序如下:assume cs:codesgcodesg segment mov

1. 实验目的

  • 能分析各种跳转指令构成的程序的运行原理
  • 会用跳转指令构造循环解决应用问题
  • 体验显示缓冲区的要求

2. 实验内容

任务1-奇怪的程序?

  人工分析下面的程序,然后再在Debug程序中单步执行,观察每一步完成后的结果,并解释出现的现象。
  程序如下:

assume cs:codesg
codesg segment
       mov ax,4c00h
       int 21h
start: mov ax, 0
     s: nop
       nop
       mov di, offset s
       mov si, offset s2
       mov ax, cs:[si]
       mov cs:[di], ax
    s0:jmp short s
    s1:mov ax, 0
       int 21h
       mov ax, 0
    s2:jmp short s1
       nop
codesg ends
end start

  实验报告中,每运行一步,截图并描述清楚执行过程。涉及修改内存单元的,通过U命令或D命令,观察修改后的内容作为指令或数据该如何解释。

任务2-植入程序的程序

  编程序,将beg_copy到end_copy的代码复制到0:200H处

assume cs:codeseg
codeseg segment
start:
     ...
beg_copy:
    mov ax, 0
    add ax, ax
    wait
end_copy: nop

codeseg ends
end start

提示:编好程序后,可以直接运行可执行文件,然后用debug程序用U命令查0:200H处的代码。
参考解答

任务3 - 循环程序的实现

  在下面的数据段中,给出了全班3名同学OS、AL、SE、DB课程的成绩,请编程计算出平均成绩,写在 ? 处。
  要求写两个版本的程序:(1)用jcxz指令构造循环;(2)用cmp指令、jxxx系列指令配合构造循环。

datasg segment
  db '201558501111','MMTJAB  ',90,100,76,89,?
  db '201558501112','ZhangAP ',97,82,79,88,?
  db '201558501113','ShaoXL  ',77,98,89,91,?
  db 4 ;这是课程门数,将要用于作除数,偏移量为75
datasg ends

在实验报告中,提供程序,以及运行结果的截图。

任务4 - 向显存中传入字符(即实验9)

  编程序,在屏幕的中间分别显示绿色、绿底红色、白底蓝色的字符串 ‘YantaiUniversity’

提示:要计算出“屏幕的中间”对应的内存单元,然后将字符以及对应的属性字节写入到内存中。

  按照P187实验9中的指导完成,实验报告中截屏说明。
参考解答

目录
相关文章
汇编语言与微机原理实验一、实验二、实验三:分支程序设计/循环程序设计/子程序设计
汇编语言与微机原理实验一、实验二、实验三:分支程序设计/循环程序设计/子程序设计
126 0
|
11月前
|
存储 Java C++
汇编语言、寄存器分类及程序计数器
汇编语言、寄存器分类及程序计数器
84 0
|
11月前
|
C语言
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(三)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(三)
|
11月前
|
编译器 C语言
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(二)
|
11月前
|
存储 自然语言处理 程序员
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
进阶C语言 第七章-------《程序的编译(预处理操作)+链接》 (预编译、编译、汇编、#define、条件编译,#include的包含)知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏(一)
|
存储 API C语言
从反汇编看恶意程序的C语言结构(二)
从反汇编看恶意程序的C语言结构
94 0
|
存储 程序员
Win知识 - 程序是怎样跑起来的——汇编语言的语法是“操作码+操作数”
Win知识 - 程序是怎样跑起来的——汇编语言的语法是“操作码+操作数”
91 0
Win知识 - 程序是怎样跑起来的——汇编语言的语法是“操作码+操作数”
|
编译器 C语言 C++
Win知识 - 程序是怎样跑起来的——通过编译器输出汇编语言的源代码
Win知识 - 程序是怎样跑起来的——通过编译器输出汇编语言的源代码
200 0