zoukankan      html  css  js  c++  java
  • 实验五

    1.将下面的程序编译、连接,用debug加载、跟踪,然后回答问题。

    assume cs:code, ds:data, ss:stack
    data segment
      dw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h
    data ends
    
    stack segment
      dw 0, 0, 0, 0, 0, 0, 0, 0
    stack ends
    
    code segment
    start:  mov ax,stack
            mov ss, ax
            mov sp,16
            
            mov ax, data
            mov ds, ax
            
            push ds:[0]
            push ds:[2]
            pop ds:[2]
            pop ds:[0]
            
            mov ax,4c00h
            int 21h
    
    code ends
    end start

    2.将下面的程序编译、连接,用debug加载,跟踪,然后回答问题。

    assume cs:code, ds:data, ss:stack
    data segment
      dw 0123h, 0456h
    data ends
    
    stack segment
      dw 0, 0
    stack ends
    
    code segment
    start:  mov ax,stack
            mov ss, ax
            mov sp,16
            
            mov ax, data
            mov ds, ax
            
            push ds:[0]
            push ds:[2]
            pop ds:[2]
            pop ds:[0]
            
            mov ax,4c00h
            int 21h
    
    code ends
    end start

    3.将下面的程序编译、连接,用debug加载、跟踪,然后回答问题。

    assume cs:code, ds:data, ss:stack
    
    code segment
    start:  mov ax,stack
            mov ss, ax
            mov sp,16
            
            mov ax, data
            mov ds, ax
            
            push ds:[0]
            push ds:[2]
            pop ds:[2]
            pop ds:[0]
            
            mov ax,4c00h
            int 21h
    
    code ends
    data segment
      dw 0123h, 0456h
    data ends
    
    stack segment
      dw 0,0
    stack ends
    end start

    4.如果将1.2.3题中是最后一条伪指令"end start"改为"end"(也就是说,不指明程序的入口),则哪个程序仍然可以正确执行?请说明原因。

    第三题程序仍然可以正确执行,不指明程序入口时,程序从头开始执行,而1,2,是以数据段开头,只有3是命令段,能正确运行下去。

    5.程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。

    assume cs:code
    a segment
      db 1,2,3,4,5,6,7,8
    a ends
    
    b segment
      db 1,2,3,4,5,6,7,8
    b ends
    
    c segment   ; 在集成软件环境中,请将此处的段名称由c→改为c1或其它名称
      db 8 dup(0)
    c ends        ; 改的时候要成对一起修改
    code segment
    start:
           ;?
    code ends
    end start

    实现前

    实现后

    正确相加了。

    6.程序如下,编写code段中的代码,用push指令将a段中的前8个字型数据,逆序存储到b段中。

    assume cs:code
    a segment
      dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
    a ends
    
    b segment
      dw 8 dup(0)
    b ends
    
    code segment
    start: 
           ;?
    code ends
    end start

     

    实现前

    实现后

    成功逆序存储到b段中。

    总结与体会

    一定要熟练运用寄存器,段寄存器,mov,loop,push,pop等等命令。

    了解如何在一个程序中使用多个逻辑段进行应用编程 。

  • 相关阅读:
    GPS坐标转化距离(短距离模型公式)
    jquery ajax 同步异步的执行
    视频播放的基本原理
    [css或js控制图片自适应]
    asp.net中js和jquery调用ashx的不同方法分享,需要的朋友可以参考一下
    [转载]在网页中插入media,RealPlayer等控件
    数组的几种排序算法的实现(3)
    -- HTML标记大全参考手册[推荐]
    数组的几种排序算法的实现(2)
    数组的几种排序算法的实现(1)
  • 原文地址:https://www.cnblogs.com/byxy/p/10052009.html
Copyright © 2011-2022 走看看