随笔分类 - 汇编
摘要:1.数据标号 关于标号: 在汇编代码中,可以用标号表示该段代码的内存地址; 标号格式为,标号名加冒号 ->"start:" 例如:下面的代码中 start: 就是标号; start:mov ax,0 mov bx,ax start:mov ax,0 mov bx,ax 关于数据标号: 普通的标号只能
阅读全文
摘要:计算机除了要进行执行指令进行运算外,还需要能对外部设备进行控制; 也就是接受外设的输入或者对外设进行输出; 比如:按键盘的k键,会在屏幕上显示字符k; 计算机为了及时处理外设的输入,需要考虑两个问题: 1】cpu从何处得到外设的输入; 2】外设输入随时可能发生,cpu如何得知; 1.接口芯片和端口
阅读全文
摘要:在计算机结构中,cpu可以直接读写以下3个地方的数据: 1】cpu内部寄存器; ->比如:mov ax,0 2】内存单元; ->比如:mov ax,ds:[0] 3】端口; 1.关于内存地址空间 计算机结构中有多个储存芯片;比如主存储器、显卡、网卡等; 这些储存器通过总线与cpu相连; cpu对它们
阅读全文
摘要:1.关于int指令 格式:int n n为中断类型码; 作用: 调用n号中断程序; 指令“int n”的执行过程: 1】获取中断类型码n 2】标志寄存器入栈,IF、TF置0 3】cs、ip入栈 4】ip=4*n;cs=4*n+2; 总之,int指令的作用和call指令相似,都是用来调用一段程序; i
阅读全文
摘要:关于中断信息: 如果cpu在执行完当前正执行的指令后,检测到了中断信息,将不会执行接下来的指令,而是立即处理中断信息; 中断信息可以来自cpu内部和外部; 来自cup内部的中断信息称为内中断; 1.内中断的产生 8086cpu产生内中断信息的情况: 1】除法错误;比如执行div指令产生的除法溢出 2
阅读全文
摘要:标志寄存器是cpu内部的一种特殊寄存器; 作用: 1】用来储存相关指令的某些执行结果 2】用来为cpu执行相关指令提供行为依据 3】用来控制cpu的相关工作方式 8086cpu中的标志寄存器如图: 8086cpu的标志寄存器有16位; 其中存储的信息被称为状态字(psw); 标志寄存器不是用来存放数
阅读全文
摘要:call和ret都是用来修改ip或cs:ip,可以用来实现子程序的设计; 1.ret和retf ret ->修改ip的内容,从而实现近转移; retf ->同时修改cs和ip,从而实现远转移; 执行ret时:相当于 pop ip 1】(ip)=((ss)*16+(sp));也就是将栈顶的值赋值给ip
阅读全文
摘要:可以修改cs:ip或只修改ip的指令称为转移指令; 因为cpu将cs:ip指向的数据当做指令来执行,因此转移指令就是可以控制cpu执行内存中某处代码的指令; 转移的分类: 1】 转移行为的分类: 只修改ip的称为段内转移;例如:jmp ax 同时修改cs:ip的称为段间转移;例如:jmp 1000:
阅读全文
摘要:计算机处理数据时有两个基本问题: 1】处理的数据在什么地方; 2】要处理的数据有多长; 1.bx、si、di、bp 在8086cpu中只有这四个寄存器可以用在“[...]”中,用来表示偏移地址; 1)bx bx默认与段寄存器ds关联,用来表示数据段的偏移地址; bx可以与si或di组合使用; mov
阅读全文
摘要:1.and 和 or 指令 and ->用来做逻辑与运算 例如: mov ax,0011B and ax,0001B mov ax,0011B and ax,0001B 结果:ax 中的值为0001B or ->逻辑或运算 指令: mov ax,0011B or ax,1100B mov ax,00
阅读全文
摘要:大多数程序都包含代码、指令、栈; 为了程序设计上的清晰方便,一般会用不同的段来存放它们; 当然,也可以将它们都放在代码段; 1.代码段中使用数据 可以在代码段中利用指令dw(define word)来定义数据; 在代码段被编译连接成可执行程序后,当程序被运行,加载入内存时,会给dw定义的数据分配空间
阅读全文
摘要:1.关于[bx] 1)[bx]用来表示取寄存器bx中的值作为偏移地址; 段地址保存在段寄存器ds中; 例如:将 2000:1000 处的数据保存到寄存器ax mov ax,2000 mov ds,ax mov bx,1000 mov ax,[bx] mov ax,2000 mov ds,ax mov
阅读全文
摘要:1.汇编编程大概流程 1)编写源程序 记事本等工具编写汇编代码; 保存为xx.asm; 2)编译连接 将源程序编译连接成可执行文件xx.exe; 例如:用masm编译连接源a.asm; 编译:将 .asm 文件编译成 .obj 文件; masm a.asm masm a.asm 连接:将 .obj文
阅读全文
摘要:1.关于debug debug是dos、windows提供的实模式程序调试工具; 作用:查看cpu各寄存器的内容、内存情况、在机器码级别追踪程序的运行; 命令: debug debug 参数: r ->查看、改变cpu寄存器的内容; d ->查看内存中的内容; e ->修改内存中的内容; u ->将
阅读全文
摘要:1.内存中字的储存 在8086cpu架构中,一个内存单元为1个字节8位; 一个字有2个字节,16位,占2个内存单元; 任何两个地址连续的内存单元,N和N+1; 可以将它们看作两个内存单元,也可看做地址为N的内存单元的高位字节和低位字节; 如上图: 1地址的单元存放的字型数据为:124EH,存放的字节
阅读全文
摘要:1.cpu的基本结构 cup的结构: 1】运算器 ->信息处理; 2】寄存器 ->信息储存; 3】控制器 ->控制各种器件工作; 4】内部总线 ->连接cup内部各器件; 汇编程序主要和寄存器打交道; 寄存器是cpu中程序员可以用指令读写的部件;可以通过改变寄存器中的内容来实现对cpu的控制; 不同
阅读全文
摘要:1.汇编语言的组成 汇编语言由3类指令组成: 1)汇编指令:可以转化为对应的机器码; 例如:mov ax,bx 2)伪指令:没有对应的机器码,由编译器执行,用来控制该如何编译; 3)其它符号:由编译器识别,没有机器码;例如+-*/; 2.指令和数据 指令和数据在内存或磁盘上没有区别,都是二进制信息;
阅读全文
摘要:1.编写汇编程序需要的环境: 1】dosbox 2】masm 2.搭建步骤: 1】下载dosbox 网上搜索,有很多 2】安装dosbox 下载的dosbox解压; 运行exe,一直下一步即可; 3】下载masm masm用来编译汇编程序; 到网上搜索下载即可; 解压目录如下: 将解压masm,将文
阅读全文

浙公网安备 33010602011771号