汇编传送指令

合集下载

16位与32位汇编语言常用指令总结

16位与32位汇编语言常用指令总结

16位与32位汇编语言常用指令总结在计算机编程领域,汇编语言被广泛应用于底层程序设计,直接操作计算机硬件。

其中,16位和32位汇编语言是常见的两种类型。

本文将总结这两种汇编语言中常用的指令,帮助读者更好地理解和应用它们。

一、16位汇编语言常用指令1. 数据传送指令- MOV:将数据从一个寄存器或内存位置传送到另一个寄存器或内存位置。

- XCHG:交换两个寄存器或内存位置的数据。

2. 算术运算指令- ADD/SUB:实现加法和减法运算。

- MUL/IMUL:实现无符号与有符号乘法运算。

- DIV/IDIV:实现无符号与有符号除法运算。

3. 逻辑运算指令- AND/OR/XOR:实现与、或、异或逻辑运算。

- NOT:对操作数进行按位取反操作。

4. 条件转移指令- JMP:无条件跳转到指定地址。

- JZ/JNZ:根据零标志位(ZF)的值进行跳转。

- JC/JNC:根据进位标志位(CF)的值进行跳转。

5. 循环指令- LOOP:根据计数器的值进行循环。

- JCXZ/JECXZ:根据CX/ECX寄存器的值进行循环。

二、32位汇编语言常用指令1. 数据传送指令- MOV:同16位汇编语言中的指令,用于数据传送。

- PUSH/POP:将数据推入栈或从栈中弹出。

2. 算术运算指令- ADD/SUB:同16位汇编语言中的指令,用于加法和减法运算。

- MUL/IMUL:同16位汇编语言中的指令,用于乘法运算。

- DIV/IDIV:同16位汇编语言中的指令,用于除法运算。

3. 逻辑运算指令- AND/OR/XOR:同16位汇编语言中的指令,用于逻辑运算。

- NOT:同16位汇编语言中的指令,用于按位取反。

4. 条件转移指令- JMP:同16位汇编语言中的指令,用于无条件跳转。

- JZ/JNZ:同16位汇编语言中的指令,根据零标志位(ZF)进行跳转。

- JB/JNB:根据低位借位标志位(CF)进行跳转。

5. 循环指令- LOOP:同16位汇编语言中的指令,用于循环操作。

汇编语言程序设计基本命令

汇编语言程序设计基本命令

汇编语言程序设计基本命令汇编语言是一种底层的编程语言,直接操作计算机硬件,其指令由一系列的机器码组成。

在汇编语言程序设计中,我们需要了解一些基本的命令,包括数据传送指令、算术运算指令、控制转移指令等,下面就对这些命令做一详细的介绍。

1.数据传送指令在汇编语言中,数据传送指令用来将数据从一个位置复制到另一个位置,常用的数据传送指令有MOV、LEA和XCHG。

-MOV指令:将源操作数的值复制给目标操作数,格式为MOV目标操作数,源操作数。

-LEA指令:用来将有效地址(即内存中的地址)传送给寄存器,格式为LEA目标操作数,源操作数。

-XCHG指令:交换两个操作数的值,格式为XCHG目标操作数,源操作数。

2.算术运算指令在汇编语言中,我们可以使用一系列算术运算指令来对数据进行运算和处理,常见的算术运算指令有ADD、SUB、MUL和DIV等。

-ADD指令:用于进行加法运算,格式为ADD目标操作数,源操作数。

-SUB指令:用于进行减法运算,格式为SUB目标操作数,源操作数。

-MUL指令:用于进行乘法运算,格式为MUL目标操作数,源操作数。

-DIV指令:用于进行除法运算,格式为DIV目标操作数,源操作数。

控制转移指令用于改变程序的执行流程,常见的控制转移指令有JMP、JZ、JE、JNE等。

-JMP指令:用于无条件地跳转到目标地址继续执行,格式为JMP目标地址。

-JZ指令:用于当结果为零时跳转到目标地址继续执行,格式为JZ目标地址。

-JE指令:用于当结果相等时跳转到目标地址继续执行,格式为JE目标地址。

-JNE指令:用于当结果不相等时跳转到目标地址继续执行,格式为JNE目标地址。

4.逻辑运算指令逻辑运算指令用于对数据进行逻辑运算,常见的逻辑运算指令有AND、OR、XOR和NOT等。

-AND指令:对两个操作数的对应位进行与运算,格式为AND目标操作数,源操作数。

-OR指令:对两个操作数的对应位进行或运算,格式为OR目标操作数,源操作数。

常用汇编指令

常用汇编指令

常用汇编指令汇编语言是一种低级机器语言的抽象表示,通过使用汇编指令可以编写出与硬件相关的程序。

在计算机科学领域中,汇编指令是非常重要的,是理解计算机底层原理和实现的关键。

本文将介绍一些常用的汇编指令,以帮助读者更好地理解和应用这些指令。

一、数据传输指令1. MOV指令:MOV指令用于将数据从一个位置复制到另一个位置。

例如,MOV AX, BX将寄存器BX的内容复制到AX中。

2. LEA指令:LEA指令用于将内存地址加载到寄存器中。

例如,LEA BX, [SI+10]将[S1+10]的内存地址加载到寄存器BX中。

3. PUSH指令:PUSH指令用于将数据压入栈中。

例如,PUSH AX将AX中的数据压入栈中。

4. POP指令:POP指令用于从栈中弹出数据。

例如,POP BX将栈中的数据弹出到BX中。

二、算术运算指令1. ADD指令:ADD指令用于将两个操作数相加,并将结果存储在目标操作数中。

例如,ADD AX, BX将BX的值加到AX中。

2. SUB指令:SUB指令用于将源操作数的值从目标操作数中减去,并将结果存储在目标操作数中。

例如,SUB AX, BX从AX中减去BX的值。

3. MUL指令:MUL指令用于将源操作数与累加器中的值相乘,并将结果存储在累加器中。

例如,MUL BX将累加器的值与BX相乘。

4. DIV指令:DIV指令用于将累加器的值除以源操作数,并将商存储在累加器中,余数存储在另一个寄存器中。

例如,DIV BX将累加器的值除以BX。

三、逻辑运算指令1. AND指令:AND指令用于对两个操作数进行逻辑与运算,并将结果存储在目标操作数中。

例如,AND AX, BX将AX与BX进行逻辑与操作。

2. OR指令:OR指令用于对两个操作数进行逻辑或运算,并将结果存储在目标操作数中。

例如,OR AX, BX将AX与BX进行逻辑或操作。

3. NOT指令:NOT指令用于对操作数进行逻辑非运算,并将结果存储在目标操作数中。

汇编语言指令详解

汇编语言指令详解

汇编语言指令详解汇编语言是一种低级语言,它直接操作计算机的硬件。

与高级语言相比,汇编语言更具操作性,可以更精确地控制计算机的执行过程。

在编写汇编语言程序时,我们需要使用指令来完成各种操作,并且对不同的指令进行详细的了解。

本文将详细介绍一些常用的汇编语言指令及其功能。

一、数据传输指令数据传输指令用于在寄存器间传输数据或将数据从寄存器传送到内存中。

常用的数据传输指令包括MOV、LDA、STA等。

MOV指令用于将数据从一个寄存器传送到另一个寄存器。

例如,MOV AX, BX表示将寄存器BX中的数据传送到寄存器AX中。

LDA指令用于将一个内存单元的数据传送到累加器中。

例如,LDA 1000H将内存单元1000H中的数据传送到累加器中。

STA指令用于将累加器的数据传送到一个内存单元中。

例如,STA 2000H将累加器中的数据传送到内存单元2000H中。

二、算术运算指令算术运算指令用于对数据进行加、减、乘、除等运算操作。

常用的算术运算指令包括ADD、SUB、MUL、DIV等。

ADD指令用于将两个操作数相加,并将结果存储在目的操作数中。

例如,ADD AX, BX表示将寄存器AX和寄存器BX的数据相加,并将结果存储在寄存器AX中。

SUB指令用于将目的操作数减去源操作数,并将结果存储在目的操作数中。

例如,SUB AX, BX表示将寄存器AX减去寄存器BX的数据,并将结果存储在寄存器AX中。

MUL指令用于执行无符号整数乘法运算。

例如,MUL AX, BX表示将寄存器AX和寄存器BX的数据相乘,并将结果存储在寄存器AX 中。

DIV指令用于执行无符号整数除法运算。

例如,DIV AX, BX表示将寄存器AX的数据除以寄存器BX的数据,并将商存储在寄存器AX 中,余数存储在寄存器DX中。

三、逻辑运算指令逻辑运算指令用于对数据进行逻辑操作,如与、或、非、位移等。

常用的逻辑运算指令包括AND、OR、NOT、SHL等。

AND指令用于对两个操作数执行位与操作,并将结果存储在目的操作数中。

30个常用汇编命令

30个常用汇编命令

11、BSWAP(字节交换)
写法:bswap reg32 作用:将 reg32 的第 0 与第 3 个字节,第 1 与第 2 个字节进行交换。 示例:设 EAX=12345678h 执行 bswap eax;后,eax=78563412H
12、XLAT(换码)
写法:XLAT; 作用:AL=DS:[bx+AL] 将 DS:BX 所指内存中的由 AL 指定位移处的一个字节赋值给 AL。原来它的主要用途是查表。注意可以给它提供操作
13、ADD(加法)
写法:ADD reg/mem reg/mem/imm 作用:将后面的操作数加到前面的操作数中 注意:两个操作数必须类型匹配,并且不能同时是内存操作数 ADC (带进位加法) 写法:ADC reg/mem, reg/mem/imm ; 作用:dest=dest+src+cf 当 CF=0 时 ADD 与 ADC 的作用是相同的。 示例:实现 64 位数 EDX:EAX 与 ECX:EBX 的加法: Add EAX,EBX; ADC EDX,ECX;
写法:NEG reg/mem 作用:求补就是求相反数,即:dest=0-dest;
20、CMPXCHG(比较交换)
写法:CMPXCHG reg/mem, reg;
作用:AL/AX/EAX-oprd1,如果等于 0,则 oprd1=oprd2,否则,AL/AX/EAX=oprd1; 即:比较 AL/AX/EAX 与第一个操作数,如果相等,则置 ZF=1,并复制第二个操作数给第一个操作数;否则,置 ZF=0, 并复制第一个操作数给 AL/AX/EAX。 说明:CMPXCHG 主要为实现原子操作提供支持 CMPXCHG8B(8 字节比较交换指令) 写法:CMPXCHG8B MEM64; 功能:将 EDX:EAX 中的 64 位数与内存的 64 位数进行比较,如果相等,则置 ZF=1,并存储 ECX:EBX 到 mem64 指定 的内存地址;否则,置 ZF=0,并设置 EDX:EAX 为 mem64 的 8 字节内容

8086汇编指令

8086汇编指令
5>处理器控制指令 T`| >oX
HLT 处理器暂停, 直到出现中断或复位信号才继续. O MN|ea.O
WAIT 当芯片引线TEST为高电平时使CPU进入等待状态. &ET PYf %#
ESC 转换到外处理器. Kl+4 A} Uo
LOCK 封锁总线. %'[ pucEF
NOP 空操作. bn"z&g
POPD 32位标志出栈. @A6 iY
二、算术运算指令 J 299 mgB
ADD 加法. (RI)<zaK ;
ADC 带进位加法. ~+ {*KPiD
INC 加 1. oO;L l? ~
AAA 加法的ASCII码调整. At@0G\^
DAA 加法的十进制调整. '| g sm O
STC 置进位标志位. y O?52YO
CLC 清进位标志位. *Ja,3Q q
CMC 进位标志取反. J~rjI 24
STD 置方向标志位. .2 ST Bh.;
CLD 清方向标志位. G X>T~i\f8
STI 置中断允许位. t M{U6 k
CLI 清中断允许位. z`rW2UO#a`
JO 溢出转移. PW -s F
JP/JPE 奇偶性为偶数时转移. ,,V uv n
JS 符号位为 "1" 时转移. E J Ta ~
3>循环控制指令(短转移) aDX 4 }`u
LOOP CX不为零时循环. I, ?!N zB
LOOPE/LOOPZ CX不为零且标志Z=1时循环. ; 5!8LmZ0#
XADD 先交换再累加.( 结果在第一个操作数里 ) PK +sGV

汇编常用指令

汇编常用指令

汇编常用指令1. 前言汇编语言是一种低级别的计算机语言,它是由一些指令组成的。

指令是一条计算机执行的命令,从基本上讲,这些指令代表着标准的操作,例如加、减、乘、除、移位和比较等。

汇编语言可以通过编写程序来控制一个计算机的行为,这些程序通常被称为汇编程序。

本文将介绍汇编语言中一些常用的指令。

2. 数据传送指令数据传送指令是汇编语言中最基本的指令之一,它主要用来将数据从一个位置传送到另一个位置。

在汇编语言中,数据传送指令通常使用MOV语句来实现。

下面是一些常用的数据传送指令:- MOV AX, BX:将BX中存储的数据传送到AX中。

- MOV AX, [BX]:将BX中存储的地址所指向的数据传送到AX中。

- MOV [BX], AX:将AX中存储的数据传送到BX所指向的地址中。

3. 算术运算指令算术运算指令主要用来执行各种数学运算,例如加法、减法、乘法和除法等操作。

下面是一些常用的算术运算指令:- ADD AX, BX:将BX中存储的数据与AX中存储的数据相加,并将结果存储在AX中。

- SUB AX, BX:将BX中存储的数据从AX中存储的数据中减去,并将结果存储在AX中。

- MUL BX:将AX中存储的数据与BX中存储的数据相乘,并将结果存储在AX中。

- DIV BX:将AX中存储的数据除以BX中存储的数据,并将结果存储在AX和DX中。

4. 位运算指令位运算是一种在二进制数字级别上的运算,它可以执行各种位操作,例如AND、OR、XOR和NOT等操作。

下面是一些常用的位运算指令:- AND AX, BX:将BX中存储的数据与AX中存储的数据按位进行AND运算,并将结果存储在AX中。

- OR AX, BX:将BX中存储的数据与AX中存储的数据按位进行OR 运算,并将结果存储在AX中。

- XOR AX, BX:将BX中存储的数据与AX中存储的数据按位进行XOR运算,并将结果存储在AX中。

- NOT AX:将AX中存储的数据按位进行取反操作。

汇编语言的三种基本语句

汇编语言的三种基本语句

汇编语言的三种基本语句汇编语言是一种基于机器指令的低级语言,被广泛应用于嵌入式系统、驱动程序以及对计算机硬件直接控制的领域。

汇编语言由一系列指令组成,而指令的执行则依赖于汇编语言的三种基本语句。

本文将介绍并详细解释这三种基本语句的含义和用途。

一、数据传送指令数据传送指令是汇编语言中最基本的语句之一,用于在寄存器和内存之间传递数据。

这些指令旨在实现将数据从一个位置复制到另一个位置的操作。

例如,MOV指令是数据传送指令中最常用的一种,用于将一个数据从一个位置复制到另一个位置。

数据传送指令的语法通常如下所示:MOV 目标操作数,源操作数其中,目标操作数指的是数据传送的目标位置,而源操作数则是数据传送的源位置。

这两个操作数可以是寄存器、内存地址或是立即数。

二、算术逻辑指令算术逻辑指令是汇编语言中用于进行数学和逻辑运算的语句。

这些指令用于对数据进行加、减、乘、除、与、或、非等操作。

通过使用这些指令,程序可以根据需求对数据进行各种运算和处理。

常见的算术逻辑指令包括ADD、SUB、MUL、DIV、AND、OR等。

这些指令的语法通常如下所示:指令目标操作数,源操作数其中,目标操作数和源操作数为进行运算的数据。

这些操作数可以是寄存器、内存地址或是立即数。

三、控制转移指令控制转移指令用于在程序执行时改变程序的执行顺序,使程序能够根据不同的条件跳转到指定的位置。

这些指令用于实现循环、分支和函数调用等控制流程的操作。

常见的控制转移指令包括JMP、JZ、JE、JNE、JL、JG等。

这些指令的语法通常如下所示:指令标签其中,指令是控制转移指令的名称,而标签是程序中一个标识符所代表的位置。

程序在执行到控制转移指令时,根据条件是否满足而跳转到对应的标签位置。

结论汇编语言的三种基本语句,即数据传送指令、算术逻辑指令和控制转移指令,在编写汇编程序时发挥重要作用。

数据传送指令用于实现数据在内存和寄存器之间的交换,算术逻辑指令用于实现数学和逻辑运算,而控制转移指令则用于改变程序的执行顺序,实现流程控制。

详解汇编语言MOV指令

详解汇编语言MOV指令

详解汇编语言MOV指令汇编语言是一种低级编程语言,它直接操作计算机硬件。

在汇编语言中,MOV指令是最常用的指令之一。

本文将详细解析MOV指令的功能和使用方法。

一、MOV指令的概述MOV指令是汇编语言中的数据传送指令,用于将数据从一个位置传送到另一个位置。

它具有以下格式:MOV 目的操作数, 源操作数其中,目的操作数是数据传输的目标位置,源操作数是数据传输的来源位置。

MOV指令可以将常量值、寄存器中的值以及内存中的值进行传送。

二、MOV指令的功能和使用方法1. 传送常量值MOV指令可以将一个常量值传送到目的操作数中。

例如:MOV AX, 10H该指令将常量值10H传送到寄存器AX中。

2. 传送寄存器中的值MOV指令可以将一个寄存器中的值传送到目的操作数中。

例如:MOV BX, AX该指令将寄存器AX中的值传送到寄存器BX中。

3. 传送内存中的值MOV指令可以将内存中的值传送到目的操作数中,也可以将目的操作数中的值传送到内存中。

例如:MOV [BX], AX该指令将寄存器AX中的值传送到以BX寄存器为地址的内存单元中。

4. 传送段地址和偏移地址在实模式下,为了实现访问大于64K的内存,需要使用段地址和偏移地址进行寻址。

MOV指令可以传送段地址和偏移地址。

例如:MOV DS, 12H该指令将常量值12H传送到段寄存器DS中。

三、MOV指令的注意事项1. 目的操作数和源操作数的数据类型必须匹配,否则会引发错误。

2. 一些寄存器有特定的含义,使用时需要遵循规定。

例如,AX寄存器用于存放16位数据,而AL和AH分别用于存放AX寄存器的低8位和高8位。

3. 在使用MOV指令时,需要注意目的操作数和源操作数的位数问题,以免数据被截断或溢出。

四、MOV指令的实例应用下面通过几个实例来进一步说明MOV指令的应用。

例1:将常量值传送到内存中```MOV BYTE PTR[0], 10H```该指令将常量值10H传送到地址为0的内存单元中。

汇编语言指令汇总

汇编语言指令汇总

汇编语言指令汇总汇编语言是一种底层编程语言,用于编写计算机程序。

在汇编语言中,指令是执行特定操作的基本单元。

以下是一些常见的汇编语言指令的汇总:1.数据传输指令:-MOV:将源操作数的值复制到目的操作数。

-PUSH:将数据压入栈中。

-POP:从栈中弹出数据。

-LEA:将源操作数的有效地址加载到目的操作数中。

2.算术和逻辑指令:-ADD:将两个操作数相加,结果存储在目的操作数中。

-SUB:将第二个操作数从第一个操作数中减去,结果存储在目的操作数中。

-MUL:将两个操作数相乘,结果存储在目的操作数中。

-DIV:将第一个操作数除以第二个操作数,商存储在目的操作数中。

3.分支和循环指令:-JMP:无条件跳转到指定的地址。

-CMP:比较两个操作数的值。

-JZ/JNZ:当比较结果为零/非零时,跳转到指定的地址。

-JE/JNE:当比较结果为相等/不相等时,跳转到指定的地址。

-JG/JGE/JL/JLE:当比较结果为大于/大于等于/小于/小于等于时,跳转到指定的地址。

-LOOP:循环指令,根据计数寄存器的值重复执行指定的代码块。

4.中断指令:-INT:引发中断,将程序控制权转移到中断服务程序。

-IRET:从中断服务程序返回到调用程序。

5.位操作指令:-AND/OR/XOR:按位与/或/异或操作。

-NOT:按位取反操作。

-SHL/SHR:逻辑左移/逻辑右移操作。

6.I/O指令:-IN:从输入端口读取数据。

-OUT:向输出端口写入数据。

7.标志位操作指令:-CLC:清除进位标志位。

-STC:设置进位标志位。

-CLI:禁用中断。

-STI:启用中断。

8.字符串指令:-MOVS:将一个字符串从源地址移动到目的地址。

-CMPS:比较两个字符串的内容。

-LODS:从源地址加载一个字符或一个字符串。

-STOS:存储一个字符或一个字符串到目的地址。

9.其他指令:-NOP:空操作指令。

-HLT:停止运行指令。

以上只是一些常见的汇编语言指令,汇编语言的指令集因计算机体系结构而异。

汇编指令大全

汇编指令大全

汇编指令大全1. 引言汇编语言是一种基于计算机硬件体系结构的低级语言。

它用于编写与硬件交互的程序,并且具有直接访问计算机底层硬件的能力。

汇编指令是汇编语言中的基本操作指令,用于执行各种计算机操作,如数据传输、算术运算和逻辑运算等。

本文将为您介绍一些常见的汇编指令。

2. 数据传输指令数据传输指令用于在寄存器之间或内存和寄存器之间传输数据。

2.1 MOV - 数据传送指令mov是最常见的数据传送指令之一。

它用于将数据从一个源操作数传送到一个目的操作数。

mov destination, source其中,destination是目的操作数,source是源操作数。

这两个操作数可以是寄存器、内存地址或立即数。

2.2 LEA - 加载有效地址指令lea指令用于加载一个有效地址到一个目的操作数。

lea destination, source其中,destination是目的操作数,通常为一个寄存器,source是一个内存地址。

3. 算术运算指令算术运算指令用于执行加法、减法、乘法和除法等算术运算。

3.1 ADD - 加法指令add指令用于将两个操作数相加,并将结果存储在目的操作数中。

add destination, source其中,destination是目的操作数,source是源操作数。

这两个操作数可以是寄存器或内存地址。

3.2 SUB - 减法指令sub指令用于将第二个操作数从第一个操作数中减去,并将结果存储在目的操作数中。

sub destination, source其中,destination是目的操作数,source是源操作数。

这两个操作数可以是寄存器或内存地址。

3.3 MUL - 乘法指令mul指令用于将两个操作数相乘,并将结果存储在目的操作数中。

其中,destination是目的操作数,source是源操作数。

这两个操作数可以是寄存器或内存地址。

3.4 DIV - 除法指令div指令用于将目的操作数除以源操作数,并将商存储在目的操作数中,余数存储在另一个寄存器中。

汇编语言常用指令大全

汇编语言常用指令大全

汇编语言常用指令大全汇编语言是一种计算机编程语言,使用指令来控制计算机硬件执行特定的操作。

在本文中,我们将介绍一些常用的汇编语言指令,以帮助读者更好地理解和学习汇编语言。

一、数据传输指令1. MOV:将数据从一个位置复制到另一个位置。

例子:MOV AX, BX 将寄存器BX中的值复制到寄存器AX中。

2. PUSH:将数据压入堆栈。

例子:PUSH AX 将寄存器AX中的值压入堆栈。

3. POP:从堆栈中弹出并获取数据。

例子:POP AX 从堆栈中弹出一个值,并将其存入寄存器AX中。

二、算术指令1. ADD:将两个操作数相加。

例子:ADD AX, BX 将寄存器AX和BX中的值相加,并将结果存入寄存器AX中。

2. SUB:将一个操作数从另一个操作数中减去。

例子:SUB AX, BX 将寄存器BX中的值从寄存器AX中减去,并将结果存入寄存器AX中。

3. MUL:将两个操作数相乘。

例子:MUL AX, BX 将寄存器AX和BX中的值相乘,并将结果存入寄存器AX中。

三、逻辑指令1. AND:进行逻辑与操作。

例子:AND AX, BX 对寄存器AX和BX中的值进行逻辑与操作,并将结果存入寄存器AX中。

2. OR:进行逻辑或操作。

例子:OR AX, BX 对寄存器AX和BX中的值进行逻辑或操作,并将结果存入寄存器AX中。

3. NOT:进行逻辑非操作。

例子:NOT AX 对寄存器AX中的值进行逻辑非操作。

四、条件分支指令1. JMP:无条件跳转到指定的地址。

例子:JMP label 跳转到标记为label的地址。

2. JZ:当操作数为零时跳转到指定的地址。

例子:JZ label 如果寄存器AX中的值为零,则跳转到标记为label 的地址。

3. JC:当进位标志为1时跳转到指定的地址。

例子:JC label 如果进位标志位为1,则跳转到标记为label的地址。

五、循环指令1. LOOP:当计数器不为零时,循环执行指定的代码块。

汇编指令大全+很全的汇编指令

汇编指令大全+很全的汇编指令

for Addition)
1. 调整操作如下
格式: DAA
(1) 若(AL) and 0FH>9 或 AF=1
,则(AL)<--(AL)+6,AF<--1,对低
功能: 对AL中的两个组合进制数相加的结果进行调 四位的调整.
整,调整结果仍放在AL中,进位标志放在CF中.
(2) 若(AL) and 0F0H>90H 或
OPRD2为立即数,也可以是任意一 个通用寄存器操作数.立即数只 能用于源操作数.
2. OPRD1和OPRD2均为寄存器是 允许的,一个为寄存器而另一个 为存储器也是允许的, 但不允许 两个都是存储器操作数.
3. 加法指令运算的结果对CF、 SF、OF、PF、ZF、AF都会有影 响.以上标志也称为结果标志.加 法指令适用于无符号数或有符号 数的加法运算. 说明:
作数OPRD2与目的操数OPRD1交换.
2. 段寄存器内容不能用XCHG指
令来交换.
3. 若要实现两个存储器操作数 DATA1及DATA2的交换,可用以下 指令实现: 示例: PUSH DATA1
页码,1/22
星尘-易尘
PUSH DATA2 POP DATA1 POP DATA2
5 XLAT 查表指令 XLAT
注意: 上面LDS DI,[BX]指令的 功能是把BX所指的32位地址指针 的段地址送入DS,偏移地址送入
页码,2/22
星尘-易尘
12 LES
从存储器取出32位地址的指令 LES 格式: LES OPRD1,OPRD2 功能: 从存储器取出32位地址的指令.
13 ADD
加法指令 ADD(Addition) 格式: ADD OPRD1,OPRD2 功能: 两数相加

汇编语言指令简表

汇编语言指令简表

汇编语言指令简表汇编语言是一种低级计算机语言,用于编写底层的系统软件和驱动程序。

在使用汇编语言编写程序时,熟悉各种指令是非常重要的。

本文将为您提供一份汇编语言指令简表,以帮助您更好地理解和使用汇编语言。

一、数据传送指令数据传送指令用于将数据从一个位置传送到另一个位置。

以下是常用的数据传送指令:1. MOV:将源操作数的值传送到目标操作数。

例如:MOV AX, BX ; 将BX的值传送给AX2. XCHG:交换两个操作数的值。

例如:XCHG AX, BX ; 交换AX和BX的值3. LEA:加载有效地址。

用于将地址传送到目标操作数。

例如:LEA AX, [BX+SI] ; 将BX和SI的和作为地址传送给AX二、算术运算指令算术运算指令用于对数据进行算术运算。

以下是常用的算术运算指令:1. ADD:将两个操作数相加。

例如:ADD AX, BX ; 将BX的值加到AX上2. SUB:将源操作数减去目标操作数。

例如:SUB AX, BX ; 从AX中减去BX的值3. MUL:将两个无符号数相乘。

例如:MUL AX, BX ; 将AX乘以BX的值三、逻辑运算指令逻辑运算指令用于对数据进行逻辑运算。

以下是常用的逻辑运算指令:1. AND:对两个操作数进行按位与运算。

例如:AND AX, BX ; 将AX和BX的值进行按位与运算2. OR:对两个操作数进行按位或运算。

例如:OR AX, BX ; 将AX和BX的值进行按位或运算3. XOR:对两个操作数进行按位异或运算。

例如:XOR AX, BX ; 将AX和BX的值进行按位异或运算四、跳转指令跳转指令用于根据条件改变程序的执行流程。

以下是常用的跳转指令:1. JMP:无条件跳转到目标地址。

例如:JMP label ; 跳转到标签为label的位置2. JE、JZ:条件跳转,当两个操作数相等时跳转。

例如:JE label ; 当前操作数等于AX时跳转到label3. JG、JNLE:条件跳转,当当前操作数大于目标操作数时跳转。

汇编语言指令汇总

汇编语言指令汇总

汇编语言指令汇总汇编语言是一种低级编程语言,它直接操作计算机硬件,使用指令来完成特定的任务。

下面是一些常用的汇编语言指令汇总。

1.操作数传送指令:-MOV:将数据从一个位置复制到另一个位置。

-XCHG:交换两个位置中的数据。

2.算术指令:-ADD:将两个数相加并将和存储在指定位置。

-SUB:将两个数相减并将差存储在指定位置。

-MUL:将两个数相乘并将结果存储在指定位置。

-DIV:将两个数相除并将商存储在指定位置。

-INC:将一个数增加1-DEC:将一个数减少13.逻辑指令:-AND:对两个数进行逻辑与操作并将结果存储在指定位置。

-OR:对两个数进行逻辑或操作并将结果存储在指定位置。

-XOR:对两个数进行逻辑异或操作并将结果存储在指定位置。

-NOT:对一个数进行逻辑非操作并将结果存储在指定位置。

4.控制指令:-JMP:无条件跳转到指定位置。

-JZ:如果前一条指令的结果为0,则跳转到指定位置。

-JNZ:如果前一条指令的结果不为0,则跳转到指定位置。

-JC:如果前一条指令产生进位,则跳转到指定位置。

-JNC:如果前一条指令不产生进位,则跳转到指定位置。

5.栈操作指令:-PUSH:将数据放入栈中。

-POP:将栈顶的数据弹出。

6.输入输出指令:-IN:从外部设备中读取数据。

-OUT:将数据发送到外部设备。

7.循环指令:-LOOP:根据计数寄存器的值,重复执行指定的代码块。

8.过程调用指令:-CALL:调用一个子程序。

-RET:从子程序返回。

9.字符串指令:-MOVS:将一个字节或一个字从一个位置复制到另一个位置。

-CMPS:将两个位置中的字节或字进行比较。

除了以上提到的指令外,不同的汇编语言还有其它特定的指令,用于特定的硬件操作或功能实现。

这些指令的语法与使用方法可能略有不同,具体请参考所使用的汇编语言的文档或手册。

总之,汇编语言指令是汇编语言的基础,熟练掌握和理解这些指令对于编写高效和可靠的汇编程序至关重要。

汇编指令大全

汇编指令大全
───────────────────────────────────────
AND 与运算. OR 或运算. XOR 异或运算. NOT 取反.
TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).
SHL 逻辑左移.
SAL 算术左移.(=SHL) SHR 逻辑右移.
SAR 算术右移.(=SHR) ROL 循环左移.
REPNC 当 CF=0 且 CX/ECX<>0 时重复.
五、程序转移指令
───────────────────────────────────────
1>无条件转移指令 (长转移) JMP 无条件转移指令
CALL 过程调用
RET/RETF 过程返回.
2>条件转移指令 (短转移,-128 到+127 的距离内) ( 当且仅当(SF XOR OF)=1 时,OP1
5>处理器控制指令
HLT 处理器暂停, 直到出现中断或复位信号才继续.
WAIT 当芯片引线 TEST 为高电平时使 CPU 进入等待状态. ESC 转换到外处理器.
LOCK 封锁总线. NOP 空操作.
STC 置进位标志位. CLC 清进位标志位. CMC 进位标志取反. STD 置方向标志位. CLD 清方向标志位.
CBW 字节转换为字. (把 AL 中字节的符号扩展到 AH 中去) CWD 字转换为双字. (把 AX 中的字的符号扩展到 DX 中去) CWDE 字转换为双字. (把 AX 中的字符号扩展到 EAX 中去) CDQ 双字扩展. (把 EAX 中的字的符号扩展到 EDX 中去)
三、逻辑运算指令
END 程序结束

汇编指令1传送类指令

汇编指令1传送类指令
PUSHFD:(1)Et;=(EFLAGS AND 0FCFFFFH)(清除VM和RF位)
4)POPF/POPFD标志出栈指令
指令格式 POPF
POPFD
指令功能 POPF:(1)FLAGS<=栈顶字单元内容
SAHF指令用以设置或恢复SF,ZF,AF,PF,CF5个标志位。他只影响标志寄存器的低8位,对高8位标志无影响。
3)PUSHF/PUSHFD标志进栈指令
指令格式 PUSHF
PUSHFD
指令功能 PUSHF:(1)SP<=(SP)-2
(2)栈顶字单元<=(FLAGS),不影响任何状态标志位
(2)SP<=(SP)+2
POPFD: (1)EFLAGS<=栈顶双字单元内容
(2)ESP<=(ESP)+4
④类型转换指令
1)CBM字节转换为字指令
指令格式 CBM
指令功能 扩展AL的符号到AH,形成AX中的字。即如果(AL)的最高有效位为0,则(AH)=0;如果(AL)的最高有效位为1,则(AH)=0FFH.
2)push进栈指令
指令格式 PUSH SRC
指令功能 首先修改堆栈指针SP或ESP的内容,然后将源操作数压入栈顶单元中
3)pop出栈指令
指令格式 POP DEST
指令功能 首先将SP或ESP指向栈顶单元的内容弹出到目的寄存器或存储单元中,然后修改SP或ESP指向栈顶。
4)XCHG交换指令
①数据传送指令
1)mov指令
指令格式 MOV DEST,SRC
指令功能 DEST<=(SRC)即将源地址内容(源操作数)传送到目的地址中(目的地址不能使用立即数)

汇编指令大全

汇编指令大全

汇编指令大全汇编指令是计算机程序设计中的重要组成部分,它是一种低级语言,直接操作计算机硬件,能够对计算机进行精细的控制。

在学习汇编语言时,掌握各种指令是非常重要的,因为它们是编写高效、精确的程序的基础。

本文将对常用的汇编指令进行介绍,帮助读者更好地理解和运用汇编语言。

1. 数据传送指令。

数据传送指令用于在寄存器和内存之间传送数据,常见的指令包括MOV、XCHG等。

MOV指令用于将数据从一个位置复制到另一个位置,XCHG指令用于交换两个位置的数据。

这些指令在编写程序时经常用到,能够实现数据的传递和交换。

2. 算术运算指令。

算术运算指令用于对数据进行加减乘除等数学运算,常见的指令包括ADD、SUB、MUL、DIV等。

ADD指令用于加法运算,SUB指令用于减法运算,MUL指令用于乘法运算,DIV指令用于除法运算。

这些指令能够对数据进行各种数学运算,是编写复杂程序时不可或缺的指令。

3. 逻辑运算指令。

逻辑运算指令用于对数据进行逻辑运算,常见的指令包括AND、OR、NOT、XOR等。

AND指令用于按位与运算,OR指令用于按位或运算,NOT指令用于按位取反,XOR指令用于按位异或运算。

这些指令能够对数据进行逻辑运算,常用于程序中的逻辑判断和条件运算。

4. 跳转指令。

跳转指令用于改变程序的执行顺序,常见的指令包括JMP、JE、JNE、JG等。

JMP指令用于无条件跳转,JE指令用于相等时跳转,JNE指令用于不相等时跳转,JG指令用于大于时跳转。

这些指令能够实现程序的条件分支和循环控制,是编写复杂逻辑的关键指令。

5. 存储器访问指令。

存储器访问指令用于对存储器进行读写操作,常见的指令包括PUSH、POP、LEA等。

PUSH指令用于将数据压入堆栈,POP指令用于将数据弹出堆栈,LEA 指令用于加载有效地址。

这些指令能够对存储器进行高效的读写操作,是程序设计中不可或缺的指令。

6. 输入输出指令。

输入输出指令用于与外部设备进行数据交换,常见的指令包括IN、OUT等。

专接本汇编2(传送指令)

专接本汇编2(传送指令)
3
MOV指令注意事项 指令注意事项
MOV 5, AL MOV CS,AX MOV IP,BX MOV BX,IP MOV DS,3 MOV DS, ES
立即数不能直接送段寄存器 两个段寄存器间不能直接传送数据 目的操作数不能为立即数 任何指令不能用CS 任何指令不能用 任何指令不能用IP 任何指令不能用
15
交换指令注意事项
XCHG AX,7895H , OPR1和OPR2任何一个都不能为立即数 和 任何一个都不能为立即数 XCHG AX,DS OPR1和OPR2数据的交换不能在寄存器和 段寄存器之间进 和 数据的交换不能在寄存器和 行。 XCHG DS,ES OPR1和OPR2数据的交换不能在两个段寄存器之间进行。 数据的交换不能在两个段寄存器之间进行。 和 数据的交换不能在两个段寄存器之间进行 XCHG [1290H],[BX] OPR1和OPR2数据的交换不能在两个存储器之间进行。 数据的交换不能在两个存储器之间进行。 和 数据的交换不能在两个存储器之间进行
27
al目的操作数不能为立即数movcsax任何指令不能用csmovipbx任何指令不能用ipmovbxipmovds3立即数不能直接送段寄存器movdses两个段寄存器间不能直接传送数据堆栈是以先进后出的方式进行数据操作的
传送指令
1. 通用数据传送指令 2. 目标地址传送指令 3. 标志位传送指令 4. I/O数据传递指令 数据传递指令
12
MOV AX,1000H MOV SS,AX MOV SP,0010H MOV AX,002AH MOV BX,002BH PUSH AX PUSH BX POP AX POP BX
13
练习4
处写入数据2266H,可以用以下代码完成: 在10000H处写入数据 处写入数据 ,可以用以下代码完成: MOV AX,1000H MOV DS,AX MOV AX,2266H MOV [0],AX 补全下面代码,使它能够完成同样的功能: 处写入数据2266H。 补全下面代码,使它能够完成同样的功能:在10000H处写入数据 处写入数据 。 要求: 内存单元,寄存器” 要求:不能使用 “ MOV 内存单元,寄存器”这类指令 MOV AX,1000H MOV SS,AX MOV SP,0002H MOV AX,2266H PUSH AX

汇编语言各种指令的解释与用法

汇编语言各种指令的解释与用法

【】一、通用数据传送指令1、传送指令MOV (move)指令的汇编格式:MOV DST,SRC指令的基本功能:(DST)<-(SRC) 将原操作数(字节或字)传送到目的地址。

指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。

指令的执行对标志位的影响:不影响标志位。

指令的特殊要求:目的操作数DST和源操作数SRC不允许同时为段寄存器;目的操作数DST不能是CS,也不能用立即数方式。

2、进栈指令PUSH (push onto the stack)出栈指令 POP (pop from the stack)指令的汇编格式:PUSH SRC ;POP DST指令的基本功能:PUSH指令在程序中常用来暂存某些数据,而POP指令又可将这些数据恢复。

PUSH SRC (SP)<-(SP)-2 ;(SP)<-(SRC)POP DST (DST)<-((SP));(SP)<-(SP)指令支持的寻址方式:push 和 pop指令不能不能使用立即数寻址方式。

指令对标志位的影响:PUSH 和 POP指令都不影响标志位。

指令的特殊要求:PUSH 和 POP指令只能是字操作,因此,存取字数据后,SP的修改必须是+2 或者 -2; POP指令的DST不允许是CS寄存器;3、交换指令XCHG (exchange)指令的汇编格式:XCHG OPR1,OPR2指令的基本功能:(OPR1)<->(OPR2)指令支持的寻址方式:一个操作数必须在寄存器中,另一个操作数可以在寄存器或存储器中。

指令对标志位的影戏:不影响标志位。

指令的特殊要求:不允许使用段寄存器。

二、累加器专用传送指令4、输入指令IN (input)输出指令 OUT (output)指令的汇编格式:IN ac,port port<=0FFHIN ac,DX port>0FFHOUT port,ac port<=0FFHOUT DX,ac port>0FFH指令的基本功能:对8086及其后继机型的微处理机,所有I/O端口与CPU之间的通信都由输入输出指令IN和OUT来完成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编传送指令r8——任意一个8位通用寄存器AH/AL/BH/BL/CH/CL/DH/DLr16——任意一个16通用寄存器AX/BX/CX/DX/SI/DI/BP/SPreg——代表r8或r16seg——段寄存器CS/DS/ES/SSm8——一个8位存储器操作数单元(包括所有主存寻址方式)m16——一个16位存储器操作数单元(包括所有主存寻址方式)mem——代表m8或m16i8——一个8位立即数i16——一个16位立即数imm——代表i8或i16dest——目的操作数src——源操作数----------------------------------------------------------------------------------------------------------------------------一、通用数据传送指令1、传送指令MOV格式:MOV dest,src ;dest←srcMOV指令把一个字节或字的操作数从源地址src传送至目的地址dest。

源操作数可以是立即数、寄存器或是主存单元,目的操作数可以是寄存器或主存单元,但不能是立即数。

用约定的符号表达如下:MOV reg/mem, imm ;立即数送寄存器或是存储器MOV reg/mem/seg, reg ;寄存器送寄存器(包括段寄存器)或贮存MOV reg/seg, mem ;主存送寄存器(包括段寄存器)MOV reg/mem, seg ;段寄存器送主存或寄存器特别说明:(1)立即数传送至通用寄存器(不包括段寄存器)或存储单元MOV reg/mem,imm例:mov al,4 ;al←4,字节传送mov cx,0ffh ;cx←00ffh,字传送mov byte ptr [si],0ah ;ds:[si]←0ah, byte ptr说明是字节操作mov word ptr [si+2],0bh ;ds:[si+2]←0bh, word ptr 说明是字操作绝大多数说操作数的指令中(除非特别说明)目的操作数与源操作数必须类型一致,或同为字节,或同为字,否则为非法指令。

8086不允许立即数传送至段寄存器。

特别说明(2)8086指令系统除串操作类指令外,不允许两个操作数都是存储单元,所以也就没有主存至主存的数据传送。

可以通过寄存器间接实现。

例:mov ax,buffer1 ;ax←buffer1(将buffer1内容送ax)mov buffer2,ax ;buffer2←ax;buffer1、buffer2实际表示直接寻址方式虽然存在通用寄存器和存储单元向CS段寄存器传送数据的指令,但却不允许执行。

因为这样直接改变CS值,将引起程序执行混乱。

如MOV CS,[SI]是不允许使用的指令特别说明(3)段寄存器传送到通用寄存器(不包括段寄存器)或存储单元。

例:mov [si],dsmov ax,es但是,不允许段寄存器之间的直接数据传送,如:MOV DS,ES是非法指令。

----------------------------------------------------------------------------------------------------------------------------实践操作:数据块传送程序例1:将以S1为其实地址的30个字符依次传送到同数据段的以S2为起始地址的一片字节存储单元里。

方法一:数据块是用DB定义的一个字符串S。

用变址寄存器间接寻址方式访问S1和S2,即用[SI]表示S1中个字节的位移量,用[DI]表示S2中个字节的位移量。

完整程序:NAME EX1-1DATA SEGMENTS1 DB 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123'S2 DB 30 DUP(?)DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOV AX,DATA ;数据段寄存器的填充MOV DS,AX ;MOV SI,OFFSET S1 ;S1的位移量→SIMOV DI OFFSET S2 ;S2的位移量→DIMOV CX,30 ;循环次数30→CXNEXT: MOV AX,[SI] ;([SI])→ALMOV [DI],AX ;(AL)→[DI]INC SI ;(SI)+1→SIINC DI ;(DI)+1→DILOOP NEXT ;(CX)-1→CX,(CX)=0时循环结束MOV AH,4CH ;程序结束INT 21H ;返回系统CODE ENDSEND START方法二:用db定义30个字节的字符数据标的方法来定义的数据块s1。

用变址+16位位移量的寄存器相对寻址方式(即s1[SI]和S2[SI])访问S1 和S2,即用[SI]表示距离S1(或S2)的起始地址的字节数(相对位移量),用16位的直接位移量S1(或S2)加上[SI]中的相对位移量,表示 S1或S2中的各字节的位移量(有效地址)。

SI寄存器的取值应为0~29,每次循环SI加1。

完整程序:NAME EX1-2DATA SEGMENTS1 DB 'ABCDEFGHIJKLMNOPQISTUVWXYZ0123'S2 DB 30 DUP (?)DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOV AX,DATAMOV DS,AXMOV SI,0HMOV CX,30NEXT: MOV AL,S1[SI]MOV S2[SI],ALINC SILOOP NEXTMOV AH,4CHINT 21HCODE ENDSEND START方法三:数据块用DW伪指令定义15个字的数据表,每次分配两个字符。

由于8086/8088微处理器是小端方式存储,为了等效一、二方法里用DB定义的字符串,数据必须写成:'BA','DC',…,'32'形式。

采用相对基址变址寻址方式(即[BX+SI]和[BX+SI+30])来访问S1和S2中各字(S1、S2在内存分配上是相邻的)。

将S1的起始地址[OFFSET S1]送至BX,用[SI]表示距离S1(或S2)的起始地址的字节数(相对位移量),且数据块传送时以字为单位,SI寄存器的取值为 0,2,...,28,循环15次。

完整程序:NAME EX1-3DATA SEGMENTS1 DW'BA','DC','FE','HG','JI','LK','NM','PO','RQ','TS','VU','XW','ZY','10 ','32'S2 DW 15 DUP(?)DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOV AX,DATAMOV DS,AXMOV BX,OFFSET S1MOV SI,0MOV CX,15NEXT: MOV AX,[BX+SI]MOV [BX+SI+30],AXINC SIINC SILOOP NEXTMOV AH,4CHINT 21HCODE ENDSEND START二、通用数据传送指令:交换指令XCHG和换码指令XLAT1、交换指令用来将源操作数和目的操作数内容交换,格式如下:XCHG reg,reg/mem ;reg←→reg/mem,也可以表达为:XCHG reg/mem,reg XCHG指令中操作数可以是字、也可以是字节,可以在通用寄存器与通用寄存器或存储器之间对换数据,当不能在存储器与存储器之间对换数据。

(1)XCHG指令不影响状态标志。

(2)段寄存器不能作为XCHG指令的操作数。

指令举例:XCHG SI,AXXCHG AL,BLXCHG AX,[2000H]XCHG WORD_VAR,CX数据交换程序实例:例:LI7-1.ASM将S1串与S2串交换NAME LI7-1.ASMDATA SEGMENTS1 DB 'ABCDEFG'S2 DB '0123456'N DW $-OFFSET S2 ;N为字符串长度DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,0MOV CX,NL1: MOV AL,S1[SI] ;S1[SI]与S2[SI]交换XCHG AL,S2[SI]MOV S1[SI],ALINC SI ;(SI)+1—〉SILOOP L1MOV CX,N ;显示S1串MOV SI,0MOV AH,02HL2: MOV DL,S1[SI]INT 21HINC SILOOP L2MOV DL,' 'INT 21HMOV CX,N ;显示S2串MOV SI,0L3: MOV DL,S2[SI]INT 21HINC SILOOP L3MOV AH,4CHINT 21HCODE ENDSEND START2、换码指令用于将BX指定的缓冲区中、AL指定的位移处的数据取出赋给AL,格式为:XLAT LABELXLAT ;al←ds:[bx+al]换码指令的两种格式完全等效。

第一种格式中,label表示首地址;第二中也可以用XLATB助记符。

实际的首地址在BX寄存器中。

将首地址为100H的表格缓冲区中的3号数据取出MOV BX,100HMOV AL,03HXLAT因为AL的内容实际上是距离表格首地址的位移量,只有8位,所以表格的最大长度为256,超过256的表格需要采用修改BX和AL的方法才能转换。

XLAT指令中没有显式指明操作数,而是默认是用BX和AL寄存器,这种方法称为隐含寻址方式。

换码指令的应用,如扫描码转换为ASCII码,数字0~9转换为7段显示码等换码程序实例:将二进制表示的十六进制数字转换成ASCII码在显示出来。

根据题意,需要在数据段中定义一个换码表,就是0,1,2,...,16所对应的ASCII码表:TAB_DA DB 30H,32H,32H,33H,34H,35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H或者是:TAB_DA DB '0123456789ABCDEF'完整程序如下:NAME LI7-2.ASMTABLE SEGMENTTAB_DA DB 30H,32H,32H,33H,34H,35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46HTAB_HEX DB 0,1,2,3,4,5,6,7,8,9DB 0AH,0BH,0CH,0DH,0EH,0FHTABLE ENDSCODE SEGMENTASSUME CS:CODE,DS:TABLESTART: MOV AX,TABLEMOV DS,AXMOV CX,10HMOV BX,OFFSET TAB_DAMOV SI,OFFSET TAB_HEXNEXT: MOV AL,[SI]XLAT TAB_DAMOV DL,ALMOV AH,02HINT 21HMOV DL 00HMOV AH,02HINT 21HINC SILOOP NEXTMOV AH,4CHINT 21HCODE ENDSEND START。

相关文档
最新文档