1.在8086中,一个段的起始地址必为16的倍数,最小的分配单元是16字节(这个可以按理解“一个段的起始地址必为16的倍数”那样去理解,需要移位),一个段最大长度为64kb。
我们的段地址是这样算出来的:比如现在有一个地址:1000:000f,那么这个地址就是1000f,段地址是1000往左移1位后补0,16进制下的左移一位自然就是乘16,所以可能是16的倍数;而段地址为1000016 时,它能容纳的地址也就是10000~1ffff,跨度是0~
ffff,4位的16进制数就是16位的二进制,2^16=64kb
2.汇编中debug的6个常用指令:使用示例
R:查看或者编辑寄存器的内容
D:查看内存中的值
E:修改内存中的值
T:执行一条机器指令
A:以汇编的形式往内存中写入一条指令
U:把指定地址的机器码翻译成汇编代码并显示出来
3.loop指令执行的操作为cx=cx-1,然后检查cx是否为0,如果为0就跳出循环,往下执行;非0则继续循环(一减一查)
4.分析一下C++/C、python、Java之间的区别以及高级语言和汇编语言的区别
1)高级语言之间的区别
i)C++/C程序员能够自己申请和管理内存,而Java和python则是由系统自行管理内存
ii)C++/C是非安全的,Java做得相对完善一点,而python则做得跟完善。代价就是需要付出相应的时间和空间开销
iii)C++/C和Java都是编译执行,python是解释执行,因此python相对灵活
iv)C++/C面向过程,Java和python面向对象
2)高级语言和汇编语言之间的区别:
最大的区别就是汇编能直接对硬件进行操作,以及对内存地址的访问方式有多种;另外高级语言可跨平台,可移植性好,汇编语言则不可移植
5.汇编中end指令除了可以用来通知编译器程序结束以外,还能通知编译器程序的入口。也就是说平时我们写汇编的时候,在程序开始的那里标的start:
得和程序末尾的end start
配合使用才行,这样程序才知道程序的入口。如果末尾只写一个end,那开头写的start是没有意义的,这样编译器根本不知道程序从哪儿开始.
6.VI编辑器的三种模式及其作用:
1)命令模式:vi编辑器打开后默认进入命令模式。可用键盘控制光标的移动,对文件内容进行粘贴、删除、复制等
2)插入模式:对文件内容进行修改
3)底行模式:保存文件,或者查找文件内容、退出编辑器