参考: 《汇编语言》 王爽 第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存放这个数据。 assume ...
参考: 《汇编语言》 王爽 第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存放这个数据。 assume ...
参考: 《汇编语言》 王爽 第12章 中断是指CPU在执行完当前指令后收到某种信息(中断信息),就不在接向下执行,而去对接收到的信息进行处理。中断信息可以来自CPU内部和外部,分内中断,外中断。 1. 内中断的产生 下面4中情况会产生内中断: (1)除法错误。如:div除法溢出 (2)单步执行。如debug中的单步调试 (3)执行into指令。 (4)执行int指令 2. 处理中断信息 中断 ...
参考: 《汇编语言》 王爽 第11章 CPU内部有一种特殊的寄存器叫标志寄存器(flag),它与ax,bx,cx等其他寄存器不同,它不是用来存放数据的,而是用来存放状态的。flag寄存器是按位器作用的,即只有0和1。 flag寄存器的结构: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF SF ZF AF PF CF 在debug中标志位的表示: ...
参考: 《汇编语言》 王爽 第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) sta ...
参考: 《汇编语言》 王爽 第9章 可以修改ip或者同时修改cs和ip的指令统称为转移指令。 8086CPU转移行为分为: 段内转移:只修改ip 段间转移:同时修改cs和ip 段内转移按ip修改的范围可分为: 短转移:ip修改范围 -128~127 近转移:ip修改范围 -32768~32767 转移指令分为: 无条件转移指令。如 jmp 条件转移指令 循环指令。如 loop 过程。 中断。 ...
参考: 《汇编语言》 王爽 第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 ...
参考: 《汇编语言》 王爽 第7章 1. and和or指令,与[bx+idata] and和or,就不多说了。 [bx+idata] 这样写是可以的,某些情况下,比较方便。 [bx+idata] 也可以写成 idata[bx] 直接见例子: 把’ABcde‘ 跟 ‘fGHig’ 都改成大写(ASCII中大写字母与小写字母二进制中,只有第五位不同 ...
参考: 《汇编语言》 王爽 第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 dw 表示定义字型数据,db 表示定义字节型数据。 上面代码编译连接,用debug调试,-u cs:0 查看汇编代码, ...
最新评论