汇编实验1

汇编实验1 用机器指令和汇编指令编程(1)

我再也不嫌弃c语言麻烦了噫呜呜噫orz

实验目的

  • 掌握使用debug工具编写和调试汇编命令的方法
  • 掌握第1-2章所学的关于CPU、寄存器、内存的基础知识
  • 掌握第1-2章涉及的几条指令mov, add, sub, jmp的用法

实验准备

  • 复习教材第1~2章内容,完成教材内相关检测点
  • 结合教材实验1 (P35)及公邮文件中心→实验下的 “实验1辅助文档.pdf”学习debug 工具用法。

实验内容

  • 练习教材 P35-45「预备知识:Debug 的使用」,学习 debug 启动、退出及常用指令用法
  • 在练习基础上,完成「2. 实验任务」

实验结论

使用debug调试工具

  • 32位win7及以下系统

win+R快捷键,输入cmd并回车,进入dos界面,输入debug并回车,进入debug调试环境,以短线为提示符

  • 64位win7及以上系统/Mac OS/Linux

使用虚拟dos工具

汇编命令

  • r命令:查看、改变CPU寄存器的内容

    -r    ;输入后回车,查看所有寄存器的值
    -r ax ;以ax寄存器为例,输入后回车,查看/修改ax寄存器的值
    AX 0000   
    : ;显示ax的值,若想要修改,在冒号后输入修改后的值并回车;若不想修改,输入回车跳过
  • d命令:查看内存中的内容

    -d    ;从系统当前的偏移地址开始,显示128个字节内容(显示8行,每行16个字节)
    -d 0100   ;以偏移地址为0100H为例,从偏移地址开始,显示128个字节内容(显示8行,每行16个字节)
    -d 0100 0105  ;以0100~0105为例,显示偏移地址从0100H到0105H的内存单元的内容(默认情况下指的是数据段) 
  • e命令:修改存储单元内容

    -e 0100   ;以偏移地址为0100H为例,输入后回车,显示偏移地址0100H处的内容
    0B9E:0100  04.90  ;04为该地址处原始值,在.后输入修改后的值90
    -e 0100 1 2 3 4 5 ;将偏移地址为0100H单元开始的连续五个单元内容改为1 2 3 4 5 
  • a命令:输入符号指令

    -a    ;从当前CS:IP开始,输入符号指令
    1000:0000 mov ax,1    ;以CS:IP=1000:0000为例,写入指令
    -a 1000:0 ;从1000:0开始的内存单元开始写入指令
    1000:0000 mov ax,1    
  • t命令:单步执行

    -t    ;从CS:IP指向的指令开始单步执行程序
    -t=0100   ;以偏移地址为0100为例,从指定的偏移地址处单步执行程序
  • u命令:将指定内存单元内容反汇编成汇编指令

    -u 1000:0 ;从指定地址开始反汇编,默认连续反汇编32字节 
    -u 1000:0 8   ;将指定内存地址单元的内容反汇编成机器指令(包括结尾地址)

任务1

  • 第一种方式:

    进入debug环境,使用a命令写入机器指令
    1492634-20181028230442993-918029810.png

​ 使用t命令单步执行(在此不全部列出,仅示范说明)
1492634-20181028230629285-936463204.png

​ 使用d命令查看内存中的命令
1492634-20181028230650599-1140512926.png

  • 第二种方式:

    使用e命令改写内存中的内容

    使用t命令单步执行(在此不全部列出,仅示范说明)

    再使用u命令反汇编

    1492634-20181028230705744-1420938028.png

    1492634-20181028230716854-639092178.png

可以看出两种方式效果相同

任务2

写入三条指令

单步执行,将关键指令add ax,ax执行8次,也就是跳转7次(略去一些单步执行)
1492634-20181028230819492-1567813316.png
1492634-20181028230756362-2092581415.png

ax内存入的100H即为2^8的十六进制形式

任务3

使用d命令查看内存FFF00H~FFFFFH中的内容

1492634-20181028230905008-362318036.png

可以看到最后一行有日期内容

任务4

从内存地址B810:0000填入指定数据,回车

1492634-20181028230919451-943815207.png

出现了!小可爱!!!!!

改变地址

1492634-20181028230927750-78103079.png

发现在不同位置出现了相同的图案

改变内容

1492634-20181028230938893-879440439.png

发现最后一个图案改变

总结

初步掌握了debug环境的配置以及命令的使用,发现汇编真是太可爱了233333

debug环境不区分大小写

debug环境默认16进制,不需要添加后缀H

转载于:https://www.cnblogs.com/Shaoeeee/p/9867850.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值