烫了个脑子 发表于 2019-10-28 18:02

【笔记】 王爽汇编语言-实验1

1.实验环境
    {win20 ,dosbox,debug}

2.实验任务
(1) 在debug中使用“A 段地址:偏移地址”的方式将下面代码写入内存中,执行观察寄存器变化
;截取部分代码熟悉实验工具
mov ax, 4E20H
add ax, 1416H
mov bx, 2000H
add ax, bx
mov bx, ax
add ax, bx
单步执行可以看出数据发生了溢出





(2)利用以下指令计算2的8次方
mov ax, 1
add ax, ax
jump 2000:0003
[分析]:要计算2的8次方,就是要执行8次“add ax, ax”,也就是这句指令要放在2000:0003, 也是就第一句指令要放在2000:0000.实验结果如下

最后AX中的0040H也就是2^8啦
[小细节]实际上对第三条指令取指到执行完成,IP的值经历两次变化
    1.IP += GetBytes(jump 2000:0003)
    2.IP = 0003e

(3)PC机主板上的ROM中写有一个生产日期,在内存FFF00H-FFFFFH的某几个单元中,定位生产日期并将其改变
    如图所示,很容易发现生产日期“01/01/92”存储在FFFF5H-FFFFCH这8个字节中,尝试将其修改为国庆日“01/10/49”,发现不行。
再尝试,还是不行。想一下...这个日期数据存在ROM中只读!


(4) 想内存B8100H开始的单元中填写如下数据

发现屏幕上输出了几个小图标, 查ASCII表不难发现这几个图标的的十六进制形式正是01 02 03 04
接下来问题来了,剩下的一组01 02 03 04是干嘛的?
.
..
...
....
.....
大胆猜测:后一组01 02 03 04 分别表示深蓝色、绿色、淡蓝色、红色
小心验证:控制变量法。将第二个‘01’改成‘04’,观察笑脸是否会变红(果不其然.....)


最后,看了一下8086PC机的内存地址分配,很好地解释了后两个实验结果

airwhy 发表于 2019-10-29 08:04

厉害,基本没看明白

cjhk 发表于 2019-10-29 08:28

汇编正在学习中    共勉

烫了个脑子 发表于 2019-10-29 18:13

airwhy 发表于 2019-10-29 08:04
厉害,基本没看明白

其实是很简单的课本实验啦

NanKeYM 发表于 2020-1-4 17:34


汇编正在学习中

terry_zxj 发表于 2020-2-15 10:13

学习中......

萌新学员 发表于 2020-3-2 13:09

正在学习中~!头大 头大 头大

苏格拉、没有底 发表于 2020-3-20 15:29

我也在学。。。哎

howinbobo 发表于 2021-1-20 16:11

兄弟伙,我想请问我为啥没出现笑脸??前面的都没问题,就是不出现笑脸,无法观测啊!{:1_923:}

howinbobo 发表于 2021-1-20 16:24

哇靠。成功了!他被我的d命令 出了128个字节 刷上去了!{:1_893:}
页: [1]
查看完整版本: 【笔记】 王爽汇编语言-实验1