汇编语言
文章平均质量分 52
萌小宏
情不知所起,一往而深
展开
-
汇编语言的基础知识
从今天开始为大家更新汇编语言,额,我也是自学没多久,若有什么理解上的问题,或哪里说错了,谢谢指正!我就重点将一些理解性的知识,如果想系统的学习汇编语言,那自己看书吧!想要做硬件,一定要会汇编语言,因为这是专门和硬件打交道的语言。汇编语言有以下3类组成:1.汇编指令:机器码的助记符,有对应的机器码。2.伪指令:没有对应的机器码,由编译器执行,计算机并不执行。3.其他符原创 2016-09-19 11:23:17 · 576 阅读 · 0 评论 -
汇编语言编写十进制数到二进制数的进制转换并显示的子程序
不同进制间转换一直是汇编语言必须要掌握的编程技巧,算法也比较简单:例如:当其他进制数转为十进制时使用的除十取余法,压入栈中,弹出后实现逆序输出;当其他进制数转为二进制时使用的除二取余法,压入栈中,弹出后实现逆序输出;进而扩展:当其他进制数转为R进制时使用的除R取余法,压入栈中,弹出后实现逆序输出;下面介绍一种比较简便的方法,通过移位指令实现的十进制数到二进制数形式的进制转换程序,原创 2016-11-18 21:53:37 · 3616 阅读 · 1 评论 -
汇编语言程序设计
一、汇编语言程序格式及开发过程汇编语言——用指令的助记符、符号地址、标号等符号书写程序的语言。源程序—— 用汇编语言编写的程序。汇编——把源程序翻译成机器语言程序的过程。汇编程序——完成汇编任务的程序。1、汇编语言语句三种基本语句:指令语句(指令性语句) : 在汇编时产生一个目标代码。伪指令语句(指示性语句): 无目标代码,为汇编程序服务。宏指令语句原创 2016-11-02 20:48:22 · 2174 阅读 · 0 评论 -
汇编语言指令大全
MOV(传送)指令写法:MOV target,source功能描述:将源操作数source的值复制到target中去,source值不变注意事项:1)target不能是CS(代码段寄存器),我的理解是代码段不可写,只可读,所以相应这地方也不能对CS执行复制操作。2)target和source不能同时为内存数、段寄存器(CS\DS\ES\SS\FS\GS)3)不能将立即数传原创 2016-11-12 20:33:04 · 24966 阅读 · 2 评论 -
使用多个段来存储数据(汇编语言)
我们在以前学过在一个程序中使用了栈,数据,代码之类的,如果将他们都放在一个段里面,既显得凌乱,而且8086的一个段最大64KB,如果数据过于庞大,那也会显得不方便,所以,应该使用多个段来分别处理数据,代码,栈。下面我们来分析一段程序,通过这个程序来讲解:说明:①定义多个段和我们以前讲的定义代码段一样,只是段名不同而已。②程序中有多个段如何访问这些数据呢,原创 2016-10-08 09:01:01 · 1393 阅读 · 0 评论 -
8086的寻址方式
咳咳,今天偷一下懒,我先更新一下8086的寻址方式,等明天再为大家更新新的东西。一、寻址方式形成操作数或指令地址的方式,称为寻址方式。寻址方式分为两类: •指令寻址方式、操作数寻址方式操作数的寻址方式: •形成操作数的有效地址(EA)的方法在8086/8088中,操作数在内存中的有效地址是段的偏移地址。1)立即数寻址方式原创 2016-10-07 10:00:32 · 551 阅读 · 0 评论 -
汇编程序运行要注意的问题
今天对前面做一个总结,重点强调一些需要注意的地方,也简单的说一下程序编译,连接,运行中实际遇到的问题。1.任何通用的操作系统都要提供一个称为shell(外壳)的程序,用户(操作人员)使用这个程序来操作计算机系统进行工作。2.DOS中有一个程序command.com,这个程序在DOS中称为命令解释器,也就是DOS系统的shell。3.在DOS中,command处理各种输入:命令或原创 2016-09-27 16:04:50 · 587 阅读 · 0 评论 -
[BX]和loop指令
今天学习一下循环指令loop。这里的[BX]和前面所讲的IP的作用一样,寄存器里面存放的是偏移地址。如mov ax,[bx] 将一个内存单元的内容送入ax,内存单元长度为2字节,偏移地址在bx中,段地址在ds中。loop指令的格式:loop 标号,cpu执行loop指令时分两步走,①(cx) = (cx - 1),②判断cx中的值,若不为0转至标号处执行程序,为0则向下执原创 2016-09-26 15:07:15 · 745 阅读 · 0 评论 -
汇编语言第一个程序
接下来,我们开始真正学写汇编程序,前面都是铺垫知识,我和大家一起学习,如果哪里讲的不好或讲错了,谢谢大家帮我指出。assume cs:codesgcodesg segment mov ax,0123H mov bx,0456H add ax,bx add ax原创 2016-09-25 20:24:06 · 432 阅读 · 0 评论 -
8086CPU提供的栈机制简介
我们先简单提一下栈的概念:栈是一种具有特殊访问形式的存储空间,特殊性在于数据后进先出。8086提供入栈(PUSH)和出栈(POP)指令:比如push ax表示将AX寄存器中数据送入栈中,pop ax表示将栈顶取出数据送入AX寄存器中(数据的存取按小端存放的规则)mov ax,0123Hpush axmov bx 2266Hpush bxmov cx原创 2016-09-24 19:00:36 · 3344 阅读 · 0 评论 -
汇编语言之寄存器
8086CPU有14个寄存器,AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW。我有可能不一次性介绍,等我接下来用到哪个就讲哪个。8086CPU所有寄存器都是16位的。我们先来看一下通用寄存器:AX,BX,CX,DX。它的前8位AH和后8位AL又可以分开使用,主要看你互相匹配的是字节还是字。一个字由两位字节组成。有关数据的看待问题原创 2016-09-21 19:28:35 · 579 阅读 · 0 评论 -
汇编语言之寄存器(内存访问)
其实那些数据段,代码段,都是人自己定义的,CPU可不会这么想,它执行代码的时候,它只跟着CS:IP走,CS:IP指向哪里,他就认为哪里是代码,并执行它。所以如果想让CPU执行我们放在内存中的代码,那么,请让CS:IP指向他即可。8086CPU存放是按小端存放的规则来的,即字的高位字节存放在内存的髙地址中,字的低位字节存放在内存的低位地址中。下面我们来看DS和[address原创 2016-09-23 21:13:42 · 2965 阅读 · 1 评论 -
汇编语言之寄存器(二)
接着上面更的开始哦!8086CPU要读写内存时:1.CPU中的相关部件提供两个16位地址,一个称为段地址,另一个称为偏移地址。2.段地址和偏移地址通过内部总线送入地址加法器部件。3.地址加法器将两个16位的地址合成一个20位的物理地址。(物理地址=段地址*16+偏移地址)4.地址加法器通过内部总线将20位物理地址送入输入输出控制电路。5.输入输出控制电路将20位物理原创 2016-09-22 20:20:48 · 429 阅读 · 0 评论 -
微机原理==汇编语言编写十进制数到二进制数的进制转换并显示
不同进制间转换一直是汇编语言必须要掌握的编程技巧,算法也比较简单:例如:当其他进制数转为十进制时使用的除十取余法,压入栈中,弹出后实现逆序输出; 当其他进制数转为二进制时使用的除二取余法,压入栈中,弹出后实现逆序输出; 进而扩展:当其他进制数转为R进制时使用的除R取余法,压入栈中,弹出后实现逆序输出; 下面介绍一种比较简便的方法,通过移位指令实现的十进制数到二进制数形式的进制转转载 2016-11-23 22:13:03 · 8723 阅读 · 0 评论