《汇编语言》学习笔记8——基本汇编指令

1.基本汇编指令

1.传送指令:MOV

    格式:MOV OPD,OPS

    操作:将OPS的值传送到OPD中

    注意事项:

      1.OPD不能是CS

      2.不允许在两个存储单元之间传送

      3.MOV影响所有标志位

      4.OPD、OPS的数据类型要一致

      5.OPD为CS时,OPS不能为立即数

  2.进栈指令:PUSH

    格式:PUSH OPD

    操作:1.SP←SP-1  2.将OPD的高字节进栈  3.SP←SP-1  4.放入低字节

    注意事项:

      1.OPD必须为16位字

      2.OPD不能为立即数

      3.每次进栈后地址-2

      4.先修改栈顶指针,后执行进栈操作

      5.只允许对字进栈

  3.出栈指令:POP

    格式:POP OPD

    操作:1.将SP所指向字节单元内容出栈到OPD低字节  2.SP←SP+1  3.将SP所指向字节单元内容出栈到OPD低字节  4.SP←SP+1

    注意事项:

      1.OPD必须为16位字

      2.OPD不能为立即数

      3.每次出栈后地址+2

      4.先执行出栈操作,后修改栈顶指针

      5.只允许对字出栈

    进栈和出栈常用于程序中保留、恢复断点以及保护、恢复现场。

  4.交换指令:XCHG

    格式:XCHG AX,BX

    操作:将AX,BX的 值互换

5.有效地址传送:LEA

    格式:LEA  OPD,OPS

    注意事项:

      1.OPS一定是存储器操作数

      2.OPD不允许为立即数,段寄存器

  6.加指令:

    1.加法指令:ADD

      格式:ADD OPD,OPS

      操作:OPD = OPD+OPS

      注意事项:

        1.不允许将两个存储单元相加

        2.OPD、OPS都不允许为段寄存器

        3.影响所有标志位

    2.带进位加法指令:ADC

      格式:ADC OPD,OPS

      操作:OPD = OPD+OPS+CF  CF为进位标志

      注意事项与ADD相同,多用于多字节/字的运算,以便低字节/字相加时产生的进位加至最高字节中。

    3.加1指令:INC

      格式:INC  OPD

      操作:OPD = OPD+1

      注意事项:

        1.OPD不允许为立即数,不允许为段寄存器。

        2.不影响进位标志CF

  7.减指令:

    1.减法指令:SUB

      格式:SUB  OPD,OPS

      操作:OPD = OPD-OPS

      注意事项与ADD一致

    2.带借位减法指令:SBB

      格式:SBB   OPD,OPS

        操作:OPD = OPD-OPS-CF

      注意事项与ADC一致

    3.减1指令:DEC与INC一致

  8.求补指令:NEG

      1.各位取反,末尾加1

      2.对一个操作数求补,相当于用0减该操作数

      3.对一个操作数连续求补两次,其值不变

      4.除对0求补(CF=0)以外的情况,CF=1

      5.对正数补码求补为其负数补码,反之一样

  9.比较指令:CMP

时间: 2024-10-08 16:25:37

《汇编语言》学习笔记8——基本汇编指令的相关文章

Linux学习笔记——如何使用echo指令向文件写入内容

0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容的基本方法是使用IO重定向指令--">",默认情况下echo输出到标准输出中,使用>指令可重定向输出到文件中. 1.echo指令基本用法 [1]Linux官方用户手册--echo指令 [2]输入指令获得帮助 sudo echo --help 返回内容如下 用法:echo [短选项]... [字

小甲鱼零基础汇编语言学习笔记第四章之第一个汇编程序

1.使用工具 代码编写:NotePad++,代码编译器:MASM 2.一个源程序从写出到执行的过程 第一步,使用文本编辑器,用汇编语言编写汇编源程序,这一步产生一个存储源程序的文本文件. 第二步,对源程序进行编译,连接.使用MASM.exe对源程序文件进行编译,产生目标文件,再使用LINK.exe对目标文件进行连接,生成可在操作系统中直接运行的可执行文件.可执行文件包括两个部分,程序(从源程序的汇编指令翻译过来的机器码)和数据(源程序中定义的数据):相关的描述信息 (程序有多大,要占多少内存空间

【汇编语言】——用机器指令和汇编指令编程

初入大二,刚刚接触和学习汇编语言这门课程,肯定有很多的不足和漏洞:本篇文章是关于王爽编著的<汇编语言>(第三版)第二章的章后实验的实验报告和总结. 一 实验环境的配置和测试 Debug是DOS,Windows都提供的实模式(8086方式)程序的调试工具.使用它,可以查看CPU各种寄存器中的内容,内存的情况和在机器码级跟踪程序的运行.64位win10系统下,可以通过安装DOSBox软件来配置一个虚拟的工作环境. 相关的软件放在我的百度云盘,还没有安装的可以通过以下链接下载. 链接: https:

小甲鱼零基础汇编语言学习笔记第六章之包含多个段的程序

在前面的几个章节中,我们的程序都是只有一个代码段,本章我们开始学习如何编写包含多个段的程序. 1.在代码段中使用数据 首先考虑这样一个问题,计算以下8个数据的和,结果存放在ax寄存器中: 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H 在前面的课程中,我们都是累加某些内存单元中的数据,并不关心数据本身,可现在我们要累加就是已经给定了数值的数据. 代码如下: 1 assume cs:codesg 2 codesg segment 3 dw 0123H

汇编语言学习笔记(8)——数据处理的基本问题

1.只有"bx.si.di. bp"四个寄存器可以用在[-]中来进行内存单元的寻址 2.这四个寄存器可以单个出现也可以以[by+zi]形式出现,其中y=x或p,z = s或d ,其他格式均为错误的. 3.当使用bp时,如果没有显性地给出段地址,则段地址默认在ss段寄存器中. 4.汇编语言中用三个概念来表达数据的位置: 立即数(idata): 直接包含在机器指令中的[数据](执行前在CPU的[指令缓冲器中]),在汇编指令中直接给出 寄存器 指令要处理的[数据]在[寄存器]中,在汇编指令中

汇编语言学习笔记(二)

六.选择结构 if-then结构 C语言版本 if(count == 10) { count --; i++; } MASM汇编 .if count==10 dec count inc i .endif cmp指令,该指令用于比较两个参数大小 cmp mem, imm 比较内存mem和立即数imm大小 cmp reg, imm 比较寄存器reg和立即数imm大小 cmp reg, mem 比较寄存器reg和内存mem大小 cmp mem, reg 比较内存mem和寄存器reg大小 cmp imm

汇编语言学习笔记(五)

十六.数组 数组的基本表示方法 numary sdword 2,5,7 numary数组中有三个元素,为sdword类型,分别为2,5,7 empary sdword ?, ?,? empary数组为sdword类型元素,未初始化. 如果数组元素很多可通过 zeroary sdword 100 dup(0) zeroary数组中有100个0 empary sdword 3 dup(?) empary 数组中有3个未初始化的sdword类型数据 mov eax, numary+8; 表示把数组nu

[原创]java WEB学习笔记16:JSP指令(page,include),JSP标签(forwar,include,param)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

汇编语言学习笔记2

1.严格来说汇编语是由以下三部分组成: 1.汇编指令:助记符,即用英语字符替换机器码 2.伪指令:由编译器编译执行,即Mov等控制指令 3.其它符号:由编译器编译执行,计算机是不能识别"+","-"等符号,所以需要编译器编译成机器语言 2.汇编语言的核心是汇编指令,他决定汇编语言的特性 3.我们都知道CPU是计算器的核心部分,想让CPU工作,必须向他提供指令和数据,指令即告诉计算机让它做什么,数据是告诉计算机,让它拿哪些数据做 4.指令和数据在存储器中存放,也就是平