第二章
检测点2.1
1. 写出每条汇编指令执行后相关寄存器中的值。
Mov ax,62627 ax=F4A3H
Mov ah,31h ax=31A3H
Mov al,23h ax=3123H
Add ax,ax ax=6246H
Mov bx,826ch bx=826CH
Mov cx,ax cx=6246H
Mov ax,bx ax=826CH
Add ax,bx ax=04D8H
Mov al,bh ax=0482H
Mov ah,bl ax=6C82H
Add ah,ah ax=D882H
Add al,6 ax=D888H
Add al,al ax=D810H
Mov ax,cx ax=6246H
2. 只能使用目前学过的汇编指令,最多使用4条指令编程计算2的4次方。
mov ax,2
add ax,ax
add ax,ax
add ax,ax
检测点2.2
1. 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为10H到1000FH。
2. 有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的条件是:最小为1001H,最大为2000H。
解题思考:
常理为,偏移地址最小时:20000H=SA×16+0………….SA=2000H
偏移地址最大时:20000H=SA×16+FFFFH……SA×16=10001H
因为,SA×16必然是16的倍数,所以一个段的起始地址也应该是16的倍数。
所以,偏移地址最大时:20000H=SA×16+FFF0H
SA=1001H
提示,反过来思考一下,当段地址给定为多少,CPU无论怎么变化偏移地址都无法寻到20000H单元?
答:SA<1001H,SA>2000H
检测点2.3
下面的3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?
答:4次。
Mov ax,bx(读取后,指令进入指令缓冲器,IP一次修改)
Sub ax,ax(读取后,指令进入指令缓冲器,IP二次修改)
Jmp ax(读取后,指令进入指令缓冲器,IP三次修改。执行后,IP四次修改。)
IP的值为AX=0
实验任务
1. 使用DEBUG,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化。
初始化为:ax=0 bx=0 ip=100
机器码 汇编指令 AX BX IP
b8204e mov ax,4e20h 4e20 0000 103
051614 add ax,1416h 6236 0000 106
bb0020 mov bx,2000h 6236 2000 109
01d8 add ax,bx 8236 2000 10B
89c3 mov bx,ax 8236 8236 10D
01d8 add ax,bx 046c 8236 10F
b81a00 mov ax,001ah 001a 8236 112
bb2600 mov bx,0026h 001a 0026 115
00d8 add al,bl 0040 0026 117
00dc add ah,bl 2640 0026 119
00c7 add bh,al 2640 4026 11B
b400 mov ah,0 0040 4026 11D
00d8 add al,bl 0066 4026 11F
049c add al,9ch 0002 4026 121
学生我用A命令和E命令都做了一遍。
2. 将下面三条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
mov ax,1
add ax,ax
Jmp 2000:0003
当寄存器AX=100时,就是2^8。
3. 查看内存中的内容。
PC主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某个单元中,请找到这个日期并试图改变它。
答:无法改变,因为此段内存处于ROM中。
4. 向内存从B8100H开始的单元中填写数据。
现象:写入的数据会在相应的字符处高亮。因为此段内存处于显存中。
学生我都是用手机拼的(笔记,作业等全是),可能有些乱,希望老师理解。
- [kanwangxue] 如果是文字的,不是特别好啊,体力活,如果文字还加点动画,那就必须顶了。 01/15 01:10
- [kanwangxue] 必须顶啊。 01/15 00:54
- [ltoiii] 既然是实现loop功能,是否要考虑s和se标号? mov bx,offset s - offset 12/09 12:09
- [xiaoyao2012] 正确 11/01 15:33
- [xuer2016] 又找到2条被我忽视的地方: 1.PUSH 和 POP 针对字单元 2.POP 不能是CS 10/26 10:57
- [xuer2016] 学习了 我书写不规范,16进制字母前不加0,后面不加H,以后要注意了。。。 10/26 10:51
- [xuer2016] 来老师这学习下 10/26 10:31
- [youthangel] 不妙,CPU的利用率一下子就上去了。还好我的处理器不是太弱,35%左右的利用率。建议博主在修改一下 10/20 08:23
- [fpamc] 在我心里她就是我的女神。 10/02 08:58
- [newpeople] 你女朋友用得了简直就是一个女神…… 10/01 08:10
- [99998888] 请您指点一下如何找到会ASSEMBLER 语言的翻译,翻译成中文或英文。我的QQ ; 9097815 07/25 09:56
- [jeremy] 我觉得你学习的挺好,可以加你扣扣吗?我的469614823 08/07 14:46
- [zhangbo0805] 哈哈, 你好呀!很希望认识你呀!我发现你学习的积极性很高!正想向您学习呢! 07/31 23:31
- [tomato] 知道了,排得还挺满。 05/29 16:35
- [tomato] 现在学习情况怎么样?在做课设二还是什么? 05/29 10:41
- [tomato] 你的留言收到了。 05/05 23:51
- [fpamc] 开始学习c咯! 05/03 21:40
- [fpamc] 居然不能发博客了……! 04/22 21:03
- [tomato] 你相册中的游戏界面我看过了,非常好,界面很漂亮,很有创造力。博主,很有潜力。加油,一定能把这个游戏做 04/20 23:46
- [fpamc] 忙了半个月,不在家,没时间学习汇编。 但是在途中想到了一个有史以来最难的程序。对于刚学完9章的我。 04/13 20:56