• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
仓式茜
博客园    首页    新随笔    联系   管理    订阅  订阅
实验2 用机器指令和汇编指令编程

1.关于D命令

  d命令的一种格式:”d 段寄存器:偏移地址“

    如:(1)-r ds
          :1000
          -d ds:0  ;查看从1000:0开始的内存区间中的内容

      (2)-r ds
          :1000
          -d ds:10 18  ;查看1000:10~1000:18中的内容

      (3)-d cs:0  ;查看当前代码段中的指令代码

      (4)-d ss:0  ;查看当前栈段中的内容

2.在E、A、U命令中使用段寄存器

  (1)-r ds
    :1000
    -e ds:0 11 22 33 44 55  ;在从1000:0开始的内存区间中写入数据

  (2)-u cs:0  ;以汇编指令的形式,显示当前代码段中的代码

  (3)-r ds
    :1000
    -a ds:0  ;以汇编指令的形式,向从1000:0开始的内存单元中写入指令

3.下一条指令被执行了吗?

  

 

 

 

  mov ss,ax的下一条应该是mov sp,10,但变成了mov ax,3123

  debug的T命令在执行修改寄存器SS的指令后,下一条指令也紧接着被执行

 

实验任务

  

 

 

  

  这两条指令执行后靠近栈顶的10个字节中值立即有了变化,是对定义栈段时部分运行环境变量进行暂存,靠近栈顶的10个字节中的暂存数据分别是SS、IP、 CS 等的值。

  因为在用T指令在进行调试时,会产生中断。而为了保护现场,CPU先把标志寄存器入栈,再把CS IP分别入栈。

 

posted on 2022-08-21 16:04  仓式茜  阅读(37)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3