疯狂的暑假学习之 汇编入门学习笔记 (十四)—— 直接定址表
参考: 《汇编语言》 王爽 第16章
1. 描述单元长度的标号
普通的标号:a,b
assume cs:code
code segment
a:db 1,2,3,4,5,6,7,8
b:dw 0
start:
mov si,offset a
mov di,offset b
mov ah,0
mov cx,8
s:
mov al,cs:[si]
add cs:[di],ax
inc si
loop s
mov...
分类:
其他好文 时间:
2014-07-24 10:42:58
阅读次数:
235
疯狂的暑假学习之 汇编入门学习笔记 (十三)—— 外中断
参考: 《汇编语言》 王爽 第15章
1.外中断信息
外中断分为可屏蔽中断和不可屏蔽中断
可屏蔽中断
先看看内中断所引发的中断过程:
(1)取中断类型吗n。
(2)标志寄存器入栈,设置IF=0,TF=0.
(3)CS、IP入栈
(4)(IP)=(n*4),(CS)=(n*4+2)
可屏蔽中断的中断过程于内中断所引发的中断过程不同的地方只是,第一步不同。可屏蔽中断的中断过程,CPU要先看IF的值,如果IF=0就不执行中断,如果IF=1执行...
分类:
其他好文 时间:
2014-07-23 13:32:56
阅读次数:
245
疯狂的暑假学习之 汇编入门学习笔记 (十二)—— int指令、端口
参考: 《汇编语言》 王爽 第13、14章
一、int指令
1. int指令引发的中断
int n指令,相当于引发一个n号中断。
执行过程相当于:
(1)取中断类型吗n。
(2)标志寄存器入栈;设置IF=0,TF=0。
(3)CS,IP入栈
(4)(IP)=(n*4),(CS)=(n*4+2)
例子1:编写、安装中断7ch,实现求一个word型数据的平方,用ax存放这个数据。...
分类:
其他好文 时间:
2014-07-21 23:37:53
阅读次数:
324
疯狂的暑假学习之 汇编入门学习笔记 (十一)—— 内中段
参考: 《汇编语言》 王爽 第12章
中断是指CPU在执行完当前指令后收到某种信息(中断信息),就不在接向下执行,而去对接收到的信息进行处理。中断信息又可以来自CPU内部和外部,分内中断,外中断。
1. 内中断的产生
下面4中情况会产生内中断:
(1)除法错误。如:div除法溢出
(2)单步执行。如debug中的单步调试
(3)执行into指令。
(4)执行int指令...
分类:
其他好文 时间:
2014-07-19 02:28:05
阅读次数:
253
疯狂的暑假学习之 汇编入门学习笔记 (十)—— 标志寄存器
参考: 《汇编语言》 王爽 第11章
CPU内部有一种特殊的寄存器叫标志寄存器(flag),它与ax,bx,cx等其他寄存器不同,它不是用来存放数据的,而是用来存放状态的。flag寄存器是按位器作用的,即只有0和1。...
分类:
其他好文 时间:
2014-07-19 02:14:55
阅读次数:
256
疯狂的暑假学习之 汇编入门学习笔记 (九)—— call和ret
参考: 《汇编语言》 王爽 第10章
call和ret都是转移指令。
1. ret和retf
ret指令:用栈中的数据,修改IP内容,从而实现近转移
相当于:
pop ip
retf指令:用栈中的数据,修改CS和IP,从而实现远转移
相当于:
pop ip
pop cs
例子:ret
assume cs:code,ss:stack
stack segment
db 16 dup(1)
stack ends
code seg...
分类:
其他好文 时间:
2014-07-16 10:32:37
阅读次数:
267
疯狂的暑假学习之 汇编入门学习笔记 (八)—— 转移指令
参考: 《汇编语言》 王爽 第9章
可以修改ip或者同时修改cs和ip的指令统称为转移指令。
8086CPU转移行为分为:
段内转移:只修改ip
段间转移:同时修改cs和ip
段内转移按ip修改的范围可分为:
短转移:ip修改范围 -128~127
近转移:ip修改范围 -32768~32767
转移指令分为:
无条件转移指令。如 jmp
条件转移指令
循环指令。如 loop
过程。
中断。...
分类:
其他好文 时间:
2014-07-14 11:08:04
阅读次数:
206
疯狂的暑假学习之 汇编入门学习笔记 (七)—— dp,div,dup
参考: 《汇编语言》 王爽 第8章
1. bx、si、di、和 bp
8086CPU只有4个寄存器可以用 “[...]” 中进行单元寻址。
bp:除了默认的段地址是ss,其他与bx一样。
它们所有正确的组合
mov ax,[bx]
mov ax,[si]
mov ax,[di]
mov ax,[dp]
mov ax,[bx+si]
mov ax,[bx+di]
mov ax,[bp+si]
mov ax,[bp+di]
mo...
分类:
其他好文 时间:
2014-07-10 22:15:57
阅读次数:
356
疯狂的暑假学习之 汇编入门学习笔记 (六)—— si、di,双重循环
参考: 《汇编语言》 王爽 第7章
1. and和or指令,与[bx+idata]
and和or,就不多说了。
[bx+idata] 这样写是可以的,某些情况下,比较方便。
[bx+idata] 也可以写成 idata[bx]
直接见例子:...
分类:
其他好文 时间:
2014-07-10 20:00:16
阅读次数:
272
疯狂的暑假学习之 汇编入门学习笔记 (五)—— 包含多个段的程序
参考: 《汇编语言》 王爽 第6章
1.在代码中使用数据。
assume cs:code
code segment
dw 0123h,0456h,0789h,0defh
mov ax,0
mov bx,0
mov ax,4c00H
int 21h
code ends
end...
分类:
其他好文 时间:
2014-07-08 18:16:07
阅读次数:
229