《汇编语言功能号》

合集下载

《汇编语言功能号》

《汇编语言功能号》
AL=0/3执行/装入不执行
失败:AX=错误码
4CH
程序终止
AL=返回码
4DH
取返回码
AL=返回码
4EH
查找第一个目录项
DS:DX=ASCII串地址,CX=属性
AX=错误码
4FH
查找下一个目录项
DS:DX=ASCII串地址
AX=错误码
54H
读取磁盘写标志
AL=当前标志值
56H
文件改名
DS:DX=旧ASCII串,
19H
取当前磁盘
AL=当前驱动器号
1AH
设置DTA地址
DS:DX=ቤተ መጻሕፍቲ ባይዱTA地址
1BH
取缺省驱动器FAT信息
AL=每簇的扇区数,
DS:BX=FAT标识字节
CX=物理扇区的大小,
DX=驱动器和簇数
21H
随机读
DS:DX=FCB首地址
AL=00H读成功
AL=01H文件结束
AL=02H缓冲区溢出
AL=03H缓冲区不满
DS:DX=FCB首地址
AL=00H文件找到,AL=FFH未找到
13H
删除文件
DS:DX=FCB首地址
AL=00H删除成功,AL=FFH未找到
14H
顺序读
DS:DX=FCB首地址
AL=00H读成功
AL=01H文件结束,记录无数据
AL=02H DTA空间不够
AL=03H文件结束,记录不完整
15H
顺序写
48H
分配内存空间
BX=申请内存容量
成功:AX=分配内存首址
失败:BX=最大可用空间
49H
释放内存空间
ES=内存起始段地址

汇编语言

汇编语言

汇编语言汇编语言实质上是机器语言的符号表示,即用助记符(指令功能的英文缩写)代替了机器语言指令的二进制代码。

用汇编语言按着规定的语法规则编写的程序称为汇编语言源程序(*.asm)。

汇编语言源程序中的汇编指令与指令的机器码(目标代码)是一一对应的。

汇编语言2高级语言是面向过程的语言,它不依赖于特定的机器,独立于机器,高级语言编写的程序由一系列编程语句和相应的语法规则构成,编程方法更适合于人们的思维习惯,易于理解和阅读,程序本身具有可移植性,通用性强高级语言的缺点是编译程序和解释程序复杂,占用内存空间大,与汇编语言程序相比,经编译后产生的目标程序长,执行速度慢高级语言3汇编语言上机处理过程4汇编语言汇编语言的程序格式伪指令程序设计基本方法5汇编语言的程序格式汇编语言程序的结构汇编语言语句类型及格式汇编语言的数据与表达式6源程序的一般格式STACK SEGMENT┇STACK ENDSDATA SEGMENT┇DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:…┇CODE ENDSEND START7例题一个两字相加的程序。

DATA SEGMENT ;定义数据段DATA1 DW 1234H ;定义被加数DATA2 DW 5678H ;定义加数DATA ENDS ;数据段结束ESEG SEGMENT ;定义附加段SUM DW 2 DUP(?);定义存放结果区ESEG ENDS ;附加段结束CODE SEGMENT ;定义代码段;下面的语句说明程序中定义的各段分别用哪个段寄存器寻址ASSUME CS:CODE, DS:DATA,ES:ESEGSTART:MOV AX,DSEG ;START为程序开始执行的启动标号MOV DS,AX ;初始化DSMOV AX,ESEGMOV ES,AX ;初始化ESLEA SI,SUM ;存放结果的偏移地址送SIMOV AX,DATA1 ;取被加数ADD AX,DATA2 ;两数相加MOV ES:[SI],AX ;和送附加段的SUM单元中HLTCODE ENDS ;代码段结束END START ;源程序结束8源程序的结构特点汇编语言程序通常由若干段组成,段由伪指令SEGMENT与ENDS定义,各段顺序任意,段的数目按需要确定,原则上不受限制。

汇编语言指令功能总结

汇编语言指令功能总结

汇编语言指令功能总结汇编语言是一种低级语言,主要用于编写机器码指令的程序。

在计算机科学领域中,汇编语言是非常重要的,因为它可以直接操作计算机的硬件资源。

本文将对汇编语言中常用的指令功能进行总结。

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

常用的数据传输指令包括MOV(将数据从一个位置复制到另一个位置)、XCHG(交换两个位置的数据)、PUSH(将数据压入堆栈)、POP (将数据从堆栈中弹出)等。

2. 算术运算指令算术运算指令用于执行各种算术运算,例如加法、减法、乘法和除法。

常用的算术运算指令包括ADD(将两个数相加)、SUB(将一个数减去另一个数)、MUL(将两个数相乘)、DIV(将一个数除以另一个数)等。

3. 逻辑运算指令逻辑运算指令用于执行各种逻辑运算,例如与、或、非和异或。

常用的逻辑运算指令包括AND(对两个数执行与运算)、OR(对两个数执行或运算)、NOT(对一个数执行非运算)、XOR(对两个数执行异或运算)等。

4. 控制转移指令控制转移指令用于实现程序的跳转和循环执行。

常用的控制转移指令包括JMP(无条件跳转到指定的地址)、JZ(如果前一个运算结果为零则跳转)、JC(如果前一个运算结果进位则跳转)等。

5. 位操作指令位操作指令用于对数据的位进行操作。

常用的位操作指令包括AND(将两个数的对应位执行与运算)、OR(将两个数的对应位执行或运算)、NOT(取反操作)等。

6. 字符串操作指令字符串操作指令用于对字符串进行操作。

常用的字符串操作指令包括MOVSB(将一个字节从源地址复制到目的地址)、LODSB(将一个字节从源地址加载到AL寄存器)、STOSB(将AL寄存器中的值存储到目的地址)等。

7. 输入输出指令输入输出指令用于与计算机的输入输出设备进行交互。

常用的输入输出指令包括IN(从指定的端口读取数据)、OUT(将数据发送到指定的端口)等。

总结:汇编语言中的指令功能丰富多样,可以实现各种复杂的操作。

8051汇编语言概述一 ) 指令分类 42个助记符,33种功能,共...

8051汇编语言概述一 ) 指令分类 42个助记符,33种功能,共...

3-2-6 位寻址
位寻址的的操作数是RAM单元和特殊功能寄存器中可 用于位操作的位的地址。 例如: setb 40h ;将28h的最低位(第0位)臵1 mov c, 3fh ;将27h的最高位(第7位)送到CY mov 3fh , c ;将CY 送到27h的最高位(第7位) anl c, 3fh ;CY & (27h的第7位) -> CY
3-3-4 累加器交换指令
1) 字节交换指令XCH(3 条)
助记符格式
XCH A, Rn
机器码
11001rrrB
相应操作
A Rn
指令说明 机器周期
n=0~7 1 1
XCH A, direct 11000101B A (direct) direct
XCH A, ቤተ መጻሕፍቲ ባይዱRi
1100011iB data
相应操作
Rn ← A
指令说明
n=0~7, rrr=000~111
机器周期
1 1 1
10101rrr Rn←(direct) n=0~7, direct rrr=000~111 Rn←#data n=0~7, rrr=000~111
MOV Rn, #data 01111rrr data
注意:以上传送指令的结果均不影响程序状态字寄存器 PSW 的 P 和 Z 标志。
3-3-1 片内数据存储器传送指令MOV
片内数据存储器传送指令MOV 共17 条,指令基本格式: MOV <目的操作数>, <源操作数> 1)以累加器 A 为目的地址的传送指令(4 条)
助记符格式 MOV A, Rn MOV A, direct MOV A, @Ri MOV A, #data 机器码 11101rrrB 相应操作 A←Rn 指令说明 n=0~7, rrr=000~111 i=0,1 机器周期 1 1 1

汇编语言程序概述、功能与设计

汇编语言程序概述、功能与设计
汇编语言程序概述、功能 和设计
汇编语言(Assembly Language)
指用指令助记符代替机器码的编程语言。汇编语 言程序结构简单,执行速度快,程序易优化,编译后 占用存储空间小,是单片机应用系统开发中最常用的 程序设计语言。汇编语言的缺点是可读性比较差,只 有熟悉单片机的指令系统,并具有一定的程序设计经 验,才能研制出功能复杂的应用程序。
(a) 单汇分编支语流言程程序; 概述(b、)功多能分支流程
和设计
例 3 x, y均为8位二进制数, 设 x存入R0, y存入R1, 求解:
1
x0
y
1
x0
0
x0
汇编语言程序概述、功能 和设计
程序如下: START: CJNE R0, #00H, SUL1; R0中的数与00比较不等转移
MOV R1, #00H; 相等, R1← 0 SJMP SUL2 SUL1: JC NEG ; 两数不等, 若(R0)<0, 转向NEG MOV R1, #01H ; (R0)>0, 则 R1←01H SJMP SUL2 NEG: MOV R1, #0FFH ; (R0)<0, 则 R1←0FFH SUL2: RET
汇编语言程序概述、功能 和设计
机器语言(Machine Language)
直接用机器码编写程序、能够为计算机直接执行 的机器级语言。机器码是一串由二进制代码“0”和“1”组 成的二进制数据,其执行速度快,但是可读性极差。 机器语言一般只在简单的开发装置中使用,程序的设 计、输入、修改和调试都很麻烦。
汇编语言程序概述、功能 和设计
例 4 比较两个无符号数的大小。 设外部 RAM 的存储单元 ST1和 ST2中存放两个不带符号的二进制

汇编语言的原理和作用

汇编语言的原理和作用

汇编语言的原理和作用
汇编语言是一种低级编程语言,它使用符号代表机器指令,允许程序员直接操作计算机硬件。

汇编语言的原理基于将人类可读的指令转换为机器码,这样计算机可以理解并执行这些指令。

汇编语言的作用非常重要,它可以用于编写系统软件、驱动程序和对性能要求非常高的应用程序,因为它允许程序员直接控制硬件,从而实现更高效的代码。

汇编语言的原理基于将人类可读的指令转换为机器码,这一过程称为汇编。

汇编语言使用助记符代表机器指令,例如,MOV表示将数据从一个位置移动到另一个位置,ADD表示将两个数相加,JMP 表示无条件跳转等。

这些助记符被汇编器转换为对应的机器指令,然后被计算机执行。

汇编语言的作用非常广泛。

首先,它可以用于编写系统软件,如操作系统内核,因为这些软件需要直接与硬件交互,而汇编语言可以提供对硬件的直接控制。

其次,汇编语言还常用于编写驱动程序,因为驱动程序需要与硬件设备进行低级交互。

此外,对于性能要求非常高的应用程序,如图形处理、游戏开发等,汇编语言也可以发挥重要作用,因为它可以直接控制硬件资源,实现更高效的代
码。

总之,汇编语言的原理是将人类可读的指令转换为机器码,其
作用包括编写系统软件、驱动程序和对性能要求非常高的应用程序。

通过汇编语言,程序员可以直接控制计算机硬件,实现更高效的代
码和更好的性能。

《汇编语言》各章习题答案

《汇编语言》各章习题答案

汇编语言各章习题答案习题一答案:1.1无符号数: 11010011=211=D3H,01110111=119=77H,10000011=131=83H,00101111=47=2FH,10101010=170=AAH带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H,00101111=+47=2FH,10101010= -86=AAH1.2 5E8AH,0BE6H,3DEH,4940H1.3 00011101+00110101=01010010=52H=8201001001+11101000=00110001=31H=4910111110+01010010=00010000=10H=1610011010+11110001=10001011=8BH= -1171.4 00101001+01010011=01111100+00000110=10000010=82H=8201110011-00100100=01001111-00000110=01001001=49H=4901100110+00011000=01111110+00000110=10000100=84H=840000000100110010+01110101=0000000110100111+00000110=0000001000000111=0207H=2071.5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H1.6无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH 1.7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码1.8(1) 108=01101100B=6CH,补码01101100B,压缩BCD码0000000100001000,ASCII码313038H(2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H(3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H(4) 254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD码0000001001010100,ASCII码323534H1.9(1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0(3) -74+29=11010011B,CF=0,SF=1,ZF=0,OF=0(4) -92-37=01111111B,CF=1,SF=0,ZF=0,OF=11.10回车、换行、响铃、ESC键、空格键、@、P、p习题二答案:2.9最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)2.10CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP2.11字节单元保存8位数,字单元保存16位数。

汇编语言指令汇总版

汇编语言指令汇总版

MOV指令为双操作数指令,两个操作数中必须有一个是.MOV DST , SRC // Byte / Word执行操作: dst = src1.目的数可以是通用寄存器, 和段寄存器(但不允许用CS段寄存器).2.立即数不能直接送段寄存器3.不允许在两个存储单元直接传送数据4.不允许在两个段寄存器间直接传送信息PUSH入栈指令及POP出栈指令: 操作是以“后进先出”的方式进行数据操作.PUSH SRC //Word入栈的操作数除不允许用立即数外,可以为通用寄存器,段寄存器(全部)和存储器.入栈时高位字节先入栈,低位字节后入栈.POP DST //Word出栈操作数除不允许用立即数和CS段寄存器外, 可以为通用寄存器,段寄存器和存储器.执行POP SS指令后,堆栈区在存储区的位置要改变.执行POP SP 指令后,栈顶的位置要改变.XCHG(eXCHanG)交换指令: 将两操作数值交换.XCHG OPR1, OPR2 //Byte/Word执行操作: Tmp=OPR1 OPR1=OPR2 OPR2=Tmp1.必须有一个操作数是在寄存器中2.不能与段寄存器交换数据3.存储器与存储器之间不能交换数据.XLAT(TRANSLATE)换码指令: 把一种转换为另一种代码.XLAT (OPR 可选) //Byte执行操作: AL=(BX+AL)指令执行时只使用预先已存入BX中的表格首地址,执行后,AL中内容则是所要转换的代码.LEA(Load Effective Address) 有效地址传送寄存器指令LEA REG , SRC //指令把源操作数SRC的有效地址送到指定的寄存器中.执行操作: REG = EAsrc注: SRC只能是各种寻址方式的存储器操作数,REG只能是16位寄存器MOV BX , OFFSET OPER_ONE 等价于LEA BX , OPER_ONEMOV SP , [BX] //将BX间接寻址的相继的二个存储单元的内容送入SP中LEA SP , [BX] //将BX的内容作为存储器有效地址送入SP中LDS(Load DS with pointer)送寄存器和DS指令LDS REG , SRC //常指定SI寄存器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AL=6取输入状态,AL=7取输出状态
DX=设备信息
45H
复制文件号
BX=文件号1
成功:AX=文件号2;
出错:AX=错误码
46H
强制文件号
BX=文件号1,CX=文件号2
成功:AX=文件号1;
出错:AX=错误码
47H
取当前路径名
DL=驱动器号,DS:SI=ASCII串地址
DS:SI=ASCII串;
失败:AX=错误码
2FH
取DTA地址
ES:BX=DTA首地址
30H
取DOS版本号
AL=主版本号,AH=辅版本号
31H
程序终止并驻留
AL=返回码,DX=驻留大小
33H
ctrl-break检测
AL=00取状态AL=01置状态
DL=00H关闭,DL=01H打开
35H
获取中断向量
AL=中断向量号
ES:BX=中断向量
36H
取可用磁盘空间
AL=控制分析标志
AL=00H标准文件
AL=01H多义文件
AL=FFH非法盘符
2AH
取日期
CX:DH:DL=年:月:日
2BH
设置日期
CX:DH:DL=年:月:日
2CH
取时间
CH:CL=时:分,DH:DL=秒:百分秒
2DH
设置时间
CH:CL=时:分,DH:DL=秒:百分秒
2EH
设置磁盘写标志
AL=00关闭,AL=01打开
DS:DX=FCB首地址
AL=00H写成功
AL=01H盘满
AL=02H DTA空间不够
16H
创建文件
DS:DX=FCB首地址
AL=00H创建成功,
AL=FFH无磁盘空间
17H
文件改名
DS:DX=FCB首地址
(DS:DX+1)=旧文件名
(DS:DX+17)=新文件名
AL=00H改名成功,
AL=FFH不成功
CX:DX=位移量
AL=移动方式
成功:DX:AX=新指针位置
出错:AX=错误码
43H
读取/设置文件属性
DS:DX=ASCII串,
AL=0/1取/置属性,
CX=文件属性
成功:CX=文件属性
失败:AX=错误码
44H
设备I/O控制
BX=文件号;
AL=0取状态,AL=1置状态,
AL=2读数据,AL=3写数据,
CX=读取字节数
成功:
AX=实际读出字节数,
AX=0已到文件尾
出错:
AX=错误码
40H
写文件或设备
DS:DX=数据缓冲区地址,
BX=文件号,
CX=写入字节数
成功:AX=实际写入字节数
出错:AX=错误码
41H
删除文件
DX:DX=ASCII串
成功:AX=00;
失败:AX=错误码
42H
移动关闭指针
BX=文件号,
DS:DX=FCB首地址
AL=00H文件找到,AL=FFH未找到
13H
删除文件
DS:DX=FCB首地址
AL=00H删除成功,AL=FFH未找到
14H
顺序读
DS:DX=FCB首地址
AL=00H读成功
AL=01H文件结束,记录无数据
AL=02H DTA空间不够
AL=03H文件结束,记录不完整
15H
顺序写
22H
随机写
DS:DX=FCB首地址
AL=00H写成功
AL=01H盘满
AL=02H缓冲区溢出
23H
文件长度
DS:DX=FCB首地址
AL=0成功,长度在FCB。AL=1未找到
24H
设置随机记录号
DS:DX=FCB首地址
25H
设置中断向量
DS:DX=中断向量,AL=中断向量号
26H
建立PSP
DX=新的PSP
功能号
功能
入口参数
出口参数
00H
程序终止
CS=程序段前缀的段地址
01H
键盘输入
AL=输入字符
02H
显示输出
DL=输出显示的字符
03H
串行通信输入
AL=接受字符
04H
串行通信输出
DL=发送字符
05H
打印机输出
DL=打印字符
06H
控制台输入输出
DL=FFH(输入),DL=字符(输出)
AL=输入字符
07H
27H
随机块读
DS:DX=FCB首地址
CX=记录数
AL=00H读成功
AL=01H文件结束
AL=02H缓冲区溢出
AL=03H缓冲区不满
28H
随机块写
DS:DX=FCB首地址
CX=记录数
AL=00H写成功
AL=01H盘满
AL=02H缓冲区溢出
29H
分析文件名
ES:DI=FCB首地址
DS:SI=ASCII串
AX=错误码
3CH
建立文件
DS:DX=ASCII串,CX=文件属性
成功:AX=文件号;
失败:AX=错误码
3DH
打开文件
DS:DX=ASCII串,
AL=0/1/2读/写/读写
成功:AX=文件号;
失败:AX=错误码
3EH
关闭文件
BX=文件号
AX=错误码
3FH
读文件或设备
DS:DX=数据缓冲区地址
BX=文件号
无回显键盘输入
AL=输入字符
08H
无回显键盘输入
AL=输入字符
09H
显示字符串
DS:DX=字符串地址
0AH
输入字符串
DS:DX=缓冲区地址
0BH
检验键盘状态
AL=00H有输入,AL=FFH无输入
0CH
清输入缓冲区,执行指定输入功能
AL=输入功能号(1、6、7、8、AH)
0DH
磁盘复位
清除文件缓冲区
0EH
DS:DX=新ASCII串
AX=错误码
57H
设置/读取文件日期和时间
BX=文件号,AL=0读取
AL=1设置(DX:CX)
DX:CX=日期和时间
失败:AX=错误码
48H
分配内存空间
BX=申请内存容量
成功:AX=分配内存首址
失败:BX=最大可用空间
49H
释放内存空间
ES=内存起始段地址
失败:AX=错误码
4AH
调整分配的内存空间
ES=原内存起始地址
BX=再申请内存容量
失败:AX=错误码
BX=最大可用空间
4BH
装入/执行程序
DS:DX=ASCII串,
ES:BX=参数区首地址
AL=0/3执行/装入不执行
失败:AX=错误码
4CH
程序终止
AL=返回码
4DH
取返回码
AL=返回码
4EH
查找第一个目录项
DS:DX=ASCII串地址,CX=属性
AX=错误码
4FH
查找下一个目录项
DS:DX=ASCII串地址
AX=错误码
54H
读取磁盘写标志
AL=:DX=旧ASCII串,
DL=驱动器号
成功:
AX=每簇扇区数,BX=有效簇数,CX=每扇区字节数,DX=总簇数
失败:
AX=FFFFH
38H
取国家信息
DS:DX=信息区地址
BX=国家代码
39H
建立子目录
DS:DX=ASCII串
AX=错误码
3AH
删除子目录
DS:DX=ASCII串
AX=错误码
3BH
改变目录
DS:DX=ASCII串
选择磁盘驱动器
DL=驱动器号
AL=驱动器数
0FH
打开文件
DS:DX=FCB首地址
AL=00H文件找到,AL=FFH文件未找到
10H
关闭文件
DS:DX=FCB首地址
AL=00H目录修改成功,AL=FFH未找到
11H
查找第一个目录项
DS:DX=FCB首地址
AL=00H找到,AL=FFH未找到
12H
查找下一个目录项
19H
取当前磁盘
AL=当前驱动器号
1AH
设置DTA地址
DS:DX=DTA地址
1BH
取缺省驱动器FAT信息
AL=每簇的扇区数,
DS:BX=FAT标识字节
CX=物理扇区的大小,
DX=驱动器和簇数
21H
随机读
DS:DX=FCB首地址
AL=00H读成功
AL=01H文件结束
AL=02H缓冲区溢出
AL=03H缓冲区不满
相关文档
最新文档