汇编语言王爽(第四版)实验一

使用Debug,将下面的程序段写入内存,逐条执行,观察每条执行指令后CPU中相关0寄存器中内容的变化。

机器码汇编指令
b8   20   4emov ax,4e20
05   16   14add ax,1416
bb   00   20mov bx,2000
01   d8add ax,bx
89   c3mov bx,ax
01   d8add ax,bx
b8   1a   00mov ax,001a
bb   26   00mov bx,0026
00   d8add al,bl
00   dcadd ah,bl
00   c7add bh,al
b4   00mov ah,0
00   d8add al,bl
04   9cadd al,9c

使用r命令修改CS和IP中的内容,使CS:IP指向1000:0000

方法一:用e命令向内存中写入机器码

用U命令查看内存中机器码的含义

方法二:用a命令将指令写入内存

用T命令执行CS:IP指向的内存单元1000:0中存储的命令

分析:

Ax中原始数据为0000,bx中原始数据为0000.

CS:IP指向1000:0000

汇编指令axbxCS:IP
mov ax,4e204e2000001000:0003
add ax,1416623600001000:0006
mov bx,2000623620001000:0009
add ax,bx823620001000:000B
mov bx,ax823682361000:000D
add ax,bx046C82361000:000F
mov ax,001a001a82361000:0012
mov bx,0026001a00261000:0015
add al,bl004000261000:0017
add ah,bl264000261000:0019
add bh,al264040261000:001B
mov ah,0004040261000:001D
add al,bl006640261000:001F
add al,9c000240261000:0021

第二题

将下面三条指令写入从2000:0开始的内存单元中,利用这三条指令计算2^8

mov ax,1

add ax,ax

jmp 2000:0003

第二题

使用r命令使CS:IP指向2000:0000

用a命令将指令写入内存 用U命令查看内存中机器码的含义

用T命令执行CS:IP指向的内存单元2000:0中存储的命

分析:

Ax中的原始数据为0000,bx中的原始数据为0000.

CS:IP指向2000:0000

汇编指令axbxCS:IP
mov ax,1000100002000:0003
add ax,ax000200002000:0005
jmp 2000:0003000200002000:0003
add ax,ax000400002000:0005
jmp 2000:0003000400002000:0003
add ax,ax000800002000:0005
jmp 2000:0003000800002000:0003
add ax,ax001000002000:0005
jmp 2000:0003001000002000:0003
add ax,ax002000002000:0005
jmp 2000:0003002000002000:0003
add ax,ax004000002000:0005
jmp 2000:0003004000002000:0003
add ax,ax008000002000:0005
jmp 2000:0003008000002000:0003
add ax,ax010000002000:0005
jmp 2000:0003010000002000:0003

2的8次方=256=0100H

第三题

PC机主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某几个单元中,请找到这个生产日期并试图改变他

用r命查看CPU寄存器的内容

用d命令查看内存fff0:0000处的内容

生产日期存在fff0:00f5至fff0:00fc的内存单元中,生产日期为01/01/92.

用d命令将fff0:00f5至fff0:00fc内存单元中的数据提取出来

使用e命令将fff0:00fc内存单元中的数据改为25

再次用d命令将fff0:00f5至fff0:00fc内存单元中的数据提取出来

Fff0:00fc内存单元中的数据未修改,ROM是只读存储器,只能读取不能写入。

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值