什么是8086?
处理器型号
Intel8086是Intel于1978年设计的16位微处理器芯片,是x86架构的起源
INTEL于1982年推出80286,这款芯片已经发展壮大与8086和8088相比突飞猛进。
虽然仍然是16位结构,但它包含 处理器内部有134,000个晶体管,时钟频率从最初的6 MHz逐渐增加到20 MHz。
内部和外部数据总线为16位,地址总线为24位,可寻址存储器大小达到16MB,80286兼容8086的所有功能,是8086的向后兼容微处理器,因此8086汇编语言。
程序无需任何修改即可在80286上运行。
INTEL于1985年发布的CPU芯片是80x86系列中第一款32位微处理器,制造工艺也取得了长足的进步。
与80286相比,80386包含275,000个晶体管,时钟频率为12.5。
MHz,后来增加到20 MHz、25 MHz 和33 MHz。
80386的内部和外部数据总线都是32位的,地址总线也是32位的,最大可以寻址4GB的存储器。
除了实模式和保护模式之外,还增加了一种称为虚拟86的工作模式,可以通过同时模拟多个80x86处理器来提供多任务能力
参考文档
网页链接1.8086
网页链接2.80286
网页链接3.80386
架构4. x86网页链接
请问debug是什么
Debug是DOS中一个强大的外部命令,从DOS1.0开始就包含了这个命令,所以它的重要性是显而易见的。该命令主要用于挂载和卸载操作,帮助用户直接修改内存中的机器码来解决各种问题。
调试虽然很强大,但是对于初学者来说掌握起来并不容易。
debug a命令用于直接将8086/8087/8088机器代码合并到内存中,并将汇编语言指令转换为可执行机器代码。
所有值均以十六进制格式输入,每个值不超过四个字符。
如果未指定地址,a 命令将从上次停止的地方开始汇编。
相关主题可帮助用户了解如何将数据插入特定字节以及如何反汇编字节。
使用内存代码时,段的替代内存代码为 cs:、ds:、es: 和 ss:。
远程返回的内存代码是retf。
对于字符串处理,必须显式声明字符串的大小。
例如,movsw可以移动16位字符串,而movsb用于移动8位字节字符串。
组装跳转和调用时,短、近、远跳转和调用会根据字节替换自动组装到目标地址。
可以使用近或远前缀来替换此类跳跃或呼叫。
例如:a0100:05000100:0500jmp502;a2-byteshortjump0100:0502jmpnear505;a3-bytenearjump0100:0505jmpfar50a;a5-bytefarjump 近跳转或调用可缩写为 ne。
区分字和字节内存位置时,当操作数可以引用字或字节内存位置时,必须使用前缀 wordptr 或 bytestr 指定数据类型。
可接受的缩写是 wo 和 by。
例如:decwo[si]negbyteptr[128]。
使用伪指令时,a命令支持两种常用的伪指令:db操作码直接在内存中汇编,dw操作码直接在内存中汇编字值。
例如:db1,2,3,4,"thisisanexample"db'thisisaquotationmark:"'db"thisisaquotationmark:'"dw1000,2000,3000,"bach"。
a 命令还支持 支持所有形式的间接日志记录命令,例如: addbx,34[bp+2].[si-1]pop[bp+di]push[si]。
操作码同义词,如:loopz100loope100ja200jnbe200 为 8087 操作码,必须指定 wait 或 fwait 前缀,例如:fwaitfaddst,st(3) Debug c 命令用于比较两部分内存 crangeaddress 参数的范围指定。
要比较的第一个区域的起始和结束地址或者起始地址和具体的 ss 长度 第二个内存区域的起始地址 如果地址范围和内存区域相同,则调试将不显示任何,并直接返回调试提示符:address1byte1byte2address2。
现在学习汇编语言买什么书比较好
学习汇编语言推荐书籍如下: 1.《汇编语言》,作者:王爽。出版社:清华大学出版社。
2.《8086汇编语言编程》,作者:董梅婷。
出版社:清华大学出版社。
3.《汇编语言程序设计》,作者:李峰。
出版社:西安电子大学出版社。
4.《计算机语言简介》,作者:董健。
出版社:清华大学出版社。
5.《计算机语言开发与汇编》,作者:张嘉源。
出版社:西安电子大学出版社。
8086问题
当然是用汇编语言写的。您编写的代码需要放在代码片段中。
代码段的CS段寄存器通常由汇编器自动设置,而不是由您自己设置。
例如,assumecs:code 指令通常用于指定代码段。
代码段的起始地址不一定是FFFF0h,取决于具体的编程和编译器设置。
在IBMPC系统中,8086CPU上电或复位后,CS和IP会被设置为FFFFH和0000H。
此时执行的跳转指令会跳转到FFFF0H处的代码,执行BIOS检测和初始化程序。
然后调用INT19H中断来启动操作系统。
ORG伪指令用于定义当前段的相对地址,而不是绝对地址。
假设ORG定义在代码段内,则ORG100H表示接下来的第一个代码与代码段起始地址相差100H。
您可以完全自由地选择代码在程序中的起始位置。
如果你不想把它放在某个位置,你就根本不用写。
汇编器根据您的指令自动处理代码的放置。
理论上不能直接把代码放在CS=FFFFH,IP=0000H处,因为ORG只是一个相对偏移地址,实际地址是编译器生成的。