8086汇编
九思Atopos
良禽择木而栖,贤臣择主而事。见机不早,悔之晚矣!
展开
-
在DOS中如何改变cs和ip的值
在DOS中没有显式的修改CS和IP值的方法,但是可以通过执行程序来修改,但是会遇到一个问题,就是如果是用mov改变cs和ip,那么执行指令的时候就乱套了,这个时候就可以考虑跳转指令,只执行一句跳转指令call 1000:0这样的话,系统将CS和IP压栈,然后把CS和IP改成call后面的值例题:问ax的值最后是多少?内存地址 汇编1000:0 mov ax,01000:3 call 1000:91000:8 inc ax1000:9 pop ax原创 2022-05-01 09:51:48 · 432 阅读 · 3 评论 -
中断过程解释
在8086汇编中有一个事情就是中断,比如说在div指令时可能会引发除0异常,这个时候就会转到中断处理程序去执行,比如说调用int 0h指令,那么背后的原理是啥?事情是这样的,假设我们现在调用了int 0h指令,系统会首先把cs,ip依次压入栈,可能还有其它需要保存的参数,这里只关注cs和ip到(8086系统)以0000h为段起始地址找中断向量表,这个表里存放了多种中断程序的入口地址,也称为中断向量,这个找的过程:比如说是第N号中断,那么4个字节为一组(存放的是一组中断向量)然后去0000:N4的位原创 2022-04-27 16:28:17 · 203 阅读 · 0 评论 -
汇编语言学习--串操作指令
文中提到的指令为8086指令,环境为emu8086,本文若有不当之处欢迎提出,共同探讨!指令[1]:movsb 与rep指令结合使用曾有一头傻狗问我:mov指令是干啥用的捏?我如此回答他:mov可以移动立即数到内存(除CS/DS可能还有其他)/寄存器,或者把内存移到寄存器(可以互换),或者把寄存器移到寄存器(这里面mov指令的移动方向可能出错,如果有疑问请提出!)傻狗继续说道:建议你写个博客哇我:本文遂产生在mov指令使用时,俺总是觉得在内存之间移动数据非常复杂,需要使用寄存器作为中间媒介,但是原创 2022-04-17 22:16:56 · 2349 阅读 · 2 评论