汇编——debug实验1
程序员文章站
2024-03-23 22:18:52
...
汇编——debug实验1
参考《汇编语言》第三版 王爽 著
一、实验任务
查看CPU和内存,用机器指令和汇编指令编程
- 使用debug,将下列程序段写入内存,逐条执行
二、实验过程
1. 使用E命令或者A命令将指令写入内存,并用T命令执行
E命令写入机器码 A命令写入汇编语言。
机器码:
b8 20 4e
05 16 14
bb 00 20
89 c3
01 d8
b8 1a 00
bb 26 00
00 d8
00 dc
00 c7
b4 00
00 d8
04 9c
> debug
;写入内存
-e 1000:0 b8 20 4e 05 16 14 bb 00 20 89 c3 01 d8 b8 1a 00 bb 26 00 00 d8 00 dc 00 c7 b4 00 00 d8 04 9c
;读内存
-d 1000:0
下图为写入之后的内存结果
-u 1000:0 ;将内存单元中的内容翻译为汇编指令显示
;查看当前cpu寄存器的状态
-r
-rcs ;修改CS中的内容
-rip ;修改IP中的内容
;执行指令
-t
注意一个点:当执行ADD AL,BL之后,66+9cH 没有向AH进位,此时寄存器AL和AH相互独立。
2. 利用a命令写入汇编并执行,实现2的五次方
;将三条指令从2000:0的内存单元中开始写入。
mov ax,1 ;2000:0
add ax,ax ;2000:3
jmp 2000:0003 ;2000:5
3. 在内存FFF00~FFFFF中查找生产日期并试图修改
说明无法被修改
8086机内的内存地址内存分布情况如下:
在0000~ 9FFFF的内存中读取数据,实际上是在读取主随机存储器中的数据,向地址A0000~ BFFFF的内存单元中写数据,就是向显存中写入数据,这些数据会被显卡输出在显示器上,在地址C0000~ FFFFF的额你存单元中写入数据时无效的,因为这等于改写只读存储器中的内容。
读取主随机存储器中的数据,向地址A0000~ BFFFF的内存单元中写数据,就是向显存中写入数据,这些数据会被显卡输出在显示器上,在地址C0000~ FFFFF的额你存单元中写入数据时无效的,因为这等于改写只读存储器中的内容。
上一篇: C语言习题统计学生成绩
下一篇: 汇编实验报告