• 实验4:


    1.附上代码图==

    也就是先把ds的值赋为0b80,之后再对其进行偏移:ds:ip=b800:07b8;对cx赋值为16,loop循环地址后

    的16个地址,inc bx相当于mov dx,1;add bx,dx;就是实现了对bx的值加一。

    然后打开dosbox编译调试:

    type

    masm,link;

    根据要求cls处理之后再执行t3;

    16个红爱心,还是在屏幕中间位置左右的。

                                                    爱心变成了大写的A

    结论的话和前面一样呀,对显卡内存的赋值其后两位控制这个符号,前两位控制它的颜色;

    2.

    代码如下:

    进入其debug环境==,用d查看0:200地址的内存内容,0到63已经输入其中;

    cx=0016,即代码占用的字节为16.用反汇编命令u查看机器码;

    g命令不知该如何操作==

    因为int 21h以及后面的代码每个程序都有,我觉得就是相当于return 0吧。不管它,所以我选了

    g=0014代表的是第14个字节的代码的cpu寄存器内容

    其他的话就都是程序正常完结了;

    3.程序要实现“mov ax,4c00h”之前的指令复制到内存0:200处,

    所以补全程序为:

    经过大佬指导,前面先填cs即将你之前的地址给到,然后在cx,循环几次并不知道,我随便写了一个6.

    对其进行反汇编:

    可见mov ax,4c00循环是到0017,所以那里应该输17.

    试了好几遍但我这个是cx,6的编译出来的与cx为其他值出现的内容都相同==或许循环是一个固定句式??

    与其次数没有很大的关系?就如c语言循环越出并不报错。需要你自己查找?

    小结:做了很久,啊啊啊啊,还是有一些东西不能很好的自我理解,但对于这方面的知识懂了很多,对于循环

    有了更底层的认识。

  • 相关阅读:
    认识js运动
    BOM下的属性和方法---上
    BOM下的属性和方法---下
    鼠标跟随提示框
    [置顶] 关于CSDN2013博客之星的一些看法
    JSP内置对象---application
    C#中foreach语句的迭代器实现机制
    EBS动态创建账户组合实现
    稀里糊涂地被评为博客之星的候选人了,那就麻烦大家帮忙投个票吧~
    UNIX/Linux进程间通信IPC---管道--全总结(实例入门)
  • 原文地址:https://www.cnblogs.com/guapihenhaoc/p/9985871.html
Copyright © 2020-2023  润新知