zoukankan      html  css  js  c++  java
  • 《汇编语言》实验三——编程、编译、连接、跟踪

    实验任务一:将下面的程序保存为t1.asm文件,将其生成可执行文件t1.exe。

     

    用记事本编辑代码,保存为t1.asm:

    编译、连接,生成可执行文件:

     

    运行程序:

     

    得到输出结果为06

    下面研究修改line4和line9中寄存器dl的值,对结果产生的影响。

    为简化编译、连接的过程,决定采用批处理文件的形式来完成这个过程:

    生成一个名为m_l.bat的批处理文件。

    修改:line4的3—>4,line9的6—>8:

    编译、连接、执行:

    得到输出结果08

    用debug对t1.exe调试:

    用r命令查看各寄存器的值:

    发现cs的值为076A,ds的值为075A,满足(cs)=(ds)+10H

    查看psp的内容:

    可以看到,psp的头两个字节的确是CD 20

    使用u命令反汇编,观察源代码:

    单步调试:

    实验任务二:将下面的程序保存为t2.asm文件,将其生成可执行文件t2.exe

    用记事本编辑代码,保存为t2.asm:

    编译、连接,生成可执行文件:

    运行结果:在屏幕的左上方出现红色数值36

    下面研究修改line7和line10的部分数据对结果产生的影响

    ①line4的 0433h—>0432h, line10的 0436h—>0439h

    编译、连接、运行:

    运行结果:在屏幕的左上方出现红色数值29

    ①line4的 0433h—>0333h, line10的 0436h—>0336h

    编译、连接、运行:

    运行结果:在屏幕的左上方出现蓝色数值36

    从以上3组结果可以看出,line7控制第一个字符的输出,line10控制第二个字符的输出。二者[bx]的高字节决定了颜色,低字节控制显示的字符。

  • 相关阅读:
    TCP/IP网络编程之优于select的epoll(一)
    TCP/IP网络编程之I/O流分离
    TCP/IP网络编程之套接字与标准I/O
    TCP/IP网络编程之多播与广播
    TCP/IP网络编程之多种I/O函数
    TCP/IP网络编程之I/O复用
    TCP/IP网络编程之进程间通信
    TCP/IP网络编程之多进程服务端(二)
    服务器被入侵了怎么办?
    sentos7为例添加python3和python2共存
  • 原文地址:https://www.cnblogs.com/kevin234/p/9890063.html
Copyright © 2011-2022 走看看