小鬼 发表于 2017-6-9 01:18:32

《零基础入门学习汇编语言》 8-12讲笔记

检测点 2.2

(1)0001HX16+FFFFH=0010H+FFFFH=1000FH
0001HX16+0000H=0010H
最小0010H 最大1000FH
(2)SA*16+FFFFH<20000H
SA*16+0000H>20000H
SA=2000      SA=1001
修改CS、IP的指令
3:0B16前面为0003      段地址X16等于00030+0B16 为0B46

第一步CS=2000H,IP=0000H
执行20000H   mov ax,6622H
第二部 CS=1000H,IP=0003H
执行地址10003H 所以 mov ax,0000
继续往下执行4,5
Jmp修改IP的值,但是CS=1000H不变,所以执行mov ax,0123H
然后无跳转执行mov ax,0000   继续往下CPU陷入死循环
CS存放指令的段地址,IP存放指令的偏移地址
段地址在8086CPU的寄存器中存放,8086有4个段寄存器,CS用来存放指令的段地址。
检测点2.3
下面的3条指令执行后,CPU几次修改IP?都是在什么时候?最后IP中的值是多少?
Mov ax,bx      之后修改一次
Sub ax,ax      之后修改一次
Jmp ax         读取修改一次
Jmp ax         执行修改IP的值为AX    最后IP为0000H
R-查看、改变CPU寄存器的内容;
D-查看内存中的内容;
E-改写内存中的内容;
U-将内存中的机器指令翻译成汇编指令;
T-执行一条机器指令;
A-以汇编指令的格式在内存中写入一条机器指令。
页: [1]
查看完整版本: 《零基础入门学习汇编语言》 8-12讲笔记