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

    三:

    任务1:

    输入代码:

     1 assume cs:code
     2 code segment
     3 mov ax,0b800h
     4 mov ds,ax
     5 mov bx,07b8h
     6 mov cx,16
     7 s:mov [bx],0403h
     8 add bx,2
     9 loop s
    10 mov ax,4c00h
    11 int 21h
    12 code ends
    13 end

    运行结果如下:

    符合最终结果要求

    // 修改0403h->0441h后 变化为

    实验任务2:

    综合使用loop [bx],编写完整汇编源程序,实现向内存0:200-0:23f依次传送数据0-3fh

    代码:

    assume cs:code
    code segment
    mov ax,0
    mov ds,ax
    mov bx,200h
    mov cx,64
    s:mov [bx],ax
    add ax,1
    add bx,1
    loop s
    mov ax,4c00h
    int 21h
    code ends
    end

    实验结果:

    程序使用t p命令执行

    用g命令执行  (cx-2)为执行到int 21 前的代码段长度

    实验结果是一样的

    实验任务3:

    先输入代码 因为是复制汇编代码 所以段地址设为cs

    同时因为不知道cx长度 先设置为0

    在debug中观察到cx001a 所以cx为1ch

    代码如下:

    assume cs:code
    code segment
    mov ax,cs
    mov ds,ax
    mov ax,0020h
    mov bx,0
    mov cx,1ah
    s:mov al,[bx]
    mov es:[bx],al
    inc bx
    loop s
    mov ax,4c00h
    int 21h
    code ends
    end

    反汇编观察代码

    用t p命令执行

    用d命令查看确实写入代码

    总结:

    cx放的是代码段的长度,可以事后观察cx值

    对于代码段和数据段等不同概念的区分更加明确了,对不同寄存器的作用更加清楚

  • 相关阅读:
    第6周编程题:零基础学Java
    帆软报表软件学习计划
    北大软件工程——第八周:面向对象设计2
    hdu1264 Counting Squares
    hdu1264 Counting Squares
    poj1151 Atlantis(线段树+扫描线)
    poj1151 Atlantis(线段树+扫描线)
    bzoj4653 [Noi2016]区间
    bzoj4653 [Noi2016]区间
    Tyvj1043
  • 原文地址:https://www.cnblogs.com/masami/p/9985418.html
Copyright © 2011-2022 走看看