版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2. 助记符项助记符项指令、伪指令指令、伪指令对于指令对于指令,汇编程序将其翻译成机器语言指令。,汇编程序将其翻译成机器语言指令。 MOV AX, 100 B8 00 01对于伪指令对于伪指令,汇编程序据其要求的功能进行处理。,汇编程序据其要求的功能进行处理。 data SEGMENT data与一段值对应与一段值对应 string DB Tsinghua string与一内存地址对应与一内存地址对应标号标号 : 助记符助记符 操作数操作数 , ;注释;注释 名称名称 助记符项助记符项 操作数项操作数项 注释项注释项3操作数项操作数项l 操作数多于一个时,用逗号分开。操作数多于一个时,用逗号分
2、开。l 操作数可以是操作数可以是常数常数、寄存器、存储器操作数、寄存器、存储器操作数、 标号名、过程名或标号名、过程名或表达式表达式等。等。标号标号 : 助记符助记符 操作数操作数 , ;注释;注释 名称名称 助记符项助记符项 操作数项操作数项 注释项注释项常数常数给出具体的数据给出具体的数据, 可以是数字常量或字符常量。可以是数字常量或字符常量。 数字默认十进制,也可加数字默认十进制,也可加D表示十进制数。表示十进制数。如如 1234D, 1234 数字后加数字后加B表示二进制数。表示二进制数。 如如 1010B 数字后加数字后加H表示十六进制数。表示十六进制数。 如如 1234H 字符常量
3、,用单引号表示。字符常量,用单引号表示。 如如 1234 汇编时,用字符对应的汇编时,用字符对应的ASCII表示。表示。如如 31H, 32H, 33H, 34H例例 data1 DB 12, 34, 56 ;十进制;十进制 data2 DB 12H, 34H, 56H ;十六进制;十六进制 MOV AL, G ;字符;字符 string DB 1234 ;字符串;字符串l A、B、C、D、E、F开头的十六进制数前面加开头的十六进制数前面加0, 与与H结尾的标识符区别。结尾的标识符区别。如如 寄存器名寄存器名AH、BH、CH、 DH 变量名变量名 abcdH 等等例例 mov AL, 0AH
4、mov AL, AH mov BX, 0abcdH4注释项注释项l用分号间隔,用来说明语句或程序的功能。用分号间隔,用来说明语句或程序的功能。 汇编程序对分号后的内容不做处理。汇编程序对分号后的内容不做处理。l作用:作用: 注释程序,增强程序可读性。注释程序,增强程序可读性。 可放在语句最前,暂时注释某语句可放在语句最前,暂时注释某语句,调试程序用调试程序用例例 、 ; MOV AH, 2 ;显示提示信息显示提示信息 ; MOV DL, A ; INT 21H 、标号标号 : 助记符助记符 操作数操作数 , ;注释;注释 名称名称 助记符项助记符项 操作数项操作数项 注释项注释项指示性语句与指
5、令性语句:指示性语句与指令性语句:l指令性语句指令性语句是用指令系统中的指令构成的语句。是用指令系统中的指令构成的语句。 例例 MOV AX, BXl指示性语句指示性语句是指示汇编程序进行汇编的操作。是指示汇编程序进行汇编的操作。 例例 MOV AX, 4 + 8 中的中的+ code SEGMENT 中的中的SEGMENT MOV BX, OFFSET string 中的中的OFFSET3.3.3 伪指令伪指令 指示性语句与指令性语句指示性语句与指令性语句l 指令(指令(InstructionInstruction)使使CPUCPU产生动作、并在程产生动作、并在程序执行时才处理的指令序执行时
6、才处理的指令l 伪指令伪指令(DirectiveDirective)不产生不产生CPUCPU动作、在程序动作、在程序执行前由汇编程序处理的说明性指令执行前由汇编程序处理的说明性指令l不同版本的汇编程序支持不同的伪指令不同版本的汇编程序支持不同的伪指令l指示性语句与指令性语句区别指示性语句与指令性语句区别一个程序经汇编,连接和装入内存后,在执行程序一个程序经汇编,连接和装入内存后,在执行程序之前,指示性语句的功能已经完成,故又称伪操作。之前,指示性语句的功能已经完成,故又称伪操作。 而指令性语句的功能尚未完成,需控制而指令性语句的功能尚未完成,需控制CPUCPU去执行,去执行,才能完成。才能完成
7、。aa SEGMENT ;数据段数据段1 str1 DB Hello! aa ENDSbb SEGMENT ;数据段数据段2 str2 DB 6 dup (?) bb ENDScc SEGMENT ;代码段代码段 ASSUME CS:ccASSUME DS:aa, ES:bb start: CLD MOV AX , aa MOV DS , AX LEA SI , str1 MOV AX , bb MOV ES , AX LEA DI , str2 MOV CX , 6 REP MOVSB MOV AH , 4CH INT 21H cc ENDS END start D:masmDEBUG he
8、llo2.exe-U :查看代码段查看代码段12A0:0000 FC CLD12A0:0001 B89E12 MOV AX , 129E12A0:0004 8ED8 MOV DS , AX12A0:0006 8D360000 LEA SI , 000012A0:000A B89F12 MOV AX , 129F12A0:000D 8EC0 MOV ES , AX12A0:000F 8D3E0000 LEA DI , 000012A0:0013 B90600 MOV CX , 000612A0:0016 F3 REPZ12A0:0017 A4 MOVSB12A0:0018 B44C MOV AH
9、,4C12A0:001A CD21 INT 21、-D 129E:0 L10 ;查看数据段查看数据段1的内容的内容129E:0000 48 65 6C 6C 6F 21 00 00-00 00 00 00 00 00 00 00 Hello!.-D 129F:0 L10 ;查看数据段查看数据段2的内容的内容129F:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .- -数据传送源程序数据传送源程序hello2.asm 程序经汇编、连接后,装入内存的情况如下:程序经汇编、连接后,装入内存的情况如下:1. 定义数据伪指令定义数据伪指令 D
10、B/DW/DD 变量名变量名 类型助记符类型助记符 操作数操作数 ,操作数操作数 , . 用来定义程序中所用的内存操作数。用来定义程序中所用的内存操作数。 其中其中 变量名变量名指示内存操作数的地址(符号地址)指示内存操作数的地址(符号地址) 类型助记符类型助记符指示内存操作数的类型指示内存操作数的类型(字节、字、双字等字节、字、双字等) 操作数操作数指示内存操作数的内容指示内存操作数的内容 汇编程序将定义的操作数,按其类型分配内存单元数汇编程序将定义的操作数,按其类型分配内存单元数, 顺序存入变量名指向的内存单元中。顺序存入变量名指向的内存单元中。 常用的类型助记符有:常用的类型助记符有:D
11、B 指示其后的操作数为字节类型指示其后的操作数为字节类型DW 指示其后的操作数为字类型指示其后的操作数为字类型DD 指示其后的操作数为双字类型指示其后的操作数为双字类型例例: 定义赋初值的变量定义赋初值的变量 data SEGMENT xx DB 1, -1, 0fcH yy DW 1, -1, 0fcH zz DD 1,- 1, 0fcH data ENDSxxyyzz01FFFC0100FFFFFC0001000000FFFFFFFFFC000000 1- -1FC 1- -1FC 1- -1FC例例: 定义字符串变量定义字符串变量( 只能用只能用DB定义定义 ) data SEGMENT
12、 str1 DB TsingHua str2 DB INPUT: , 0dH , 0aH ,$ data ENDS注意注意:3个及其以上的字符,个及其以上的字符, 只能用只能用DB定义定义str1 DW abcdstr2 DD abcdstr1str25473696e67487561494e5055543a0d0a24TsingHuaINPUT:0dH0aH$str1 DB 54h,73h,69h,6eh,67h,48h,75h,61hDB 中的操作数可以是用中的操作数可以是用常量、表达式和常量、表达式和 ? 表示。表示。 表示内存操作数的初始值表示内存操作数的初始值例例 aa DB 270
13、bb DW 80000 用用 ? 表示不置初始值的内存操作数。表示不置初始值的内存操作数。 例例 cc DB ?DUP 复制操作符复制操作符定义相同的操作数,其格式为定义相同的操作数,其格式为 重复次数重复次数 DUP( 操作数操作数) 例例 ee DB 3 DUP ( 4 ) 等价于等价于 ee DB 4, 4, 4data SEGMENTxx DB 1, -1, 0FCHyy DW 1,- 1, 0FCHzz DD 1, -1, 0FCHstr DB TsingHuabuf DB 4, ?,4 DUP (?) DB dataenddata ENDScode SEGMENT ASSUME C
14、S:code ASSUME DS:datastart: MOV AX , data MOV DS , AX LEA BX , xx LEA SI , yy LEA DI , zz MOV AH , 4CH INT 21Hcode ENDS END start D:MASMDEBUG varible.exe- -U12A1:0000 B89E12 MOV AX , 129E12A1:0003 8ED8 MOV DS , AX12A1:0005 8D1E0000 LEA BX , 000012A1:0009 8D360300 LEA SI , 000312A1:000D 8D3E0900 LEA
15、DI , 000912A1:0011 8D1E1500 LEA BX , 001512A1:0015 8D361D00 LEA SI , 001D12A1:0019 B44C MOV AH ,4C12A1:001B CD21 INT 2112A1:001D FF36243E PUSH 3E24-D 129E : 0 L30129E:0000 01 FF FC 01 00 FF FF FC-00 01 00 00 00 FF FF FF .129E:0010 FF FC 00 00 00 54 73 69-6E 67 48 75 61 04 00 00 .TsingHua.129E:0020 0
16、0 00 00 64 61 74 61 65-6E 64 00 00 00 00 00 00 .dataend.129E:0030 B8 9E 12 8E D8 8D 1E 00-00 8D 36 03 00 8D 3E 09 .6.- -xxyyzzstrbufd a t a e n d段段名名data 变变量量xx 变变量量yy 变变量量zz 变变量量str 变变量量buf例例: 在在DEBUG下查看变量存放情况。下查看变量存放情况。2、等值定义伪指令、等值定义伪指令 格式格式 符号名符号名 EQU 需等值的表达式需等值的表达式作用是用符号名等值指作用是用符号名等值指定的表达式定的表达式其
17、中其中 表达式可以是任何有效的操作数表达式可以是任何有效的操作数汇编时用语句中的表达式代替程序中符号所在的地方。汇编时用语句中的表达式代替程序中符号所在的地方。应用:应用:1. 定义符号常量,方便修改程序。定义符号常量,方便修改程序。2. 某表达式多次出现时,用等值伪操作可以方便编程。某表达式多次出现时,用等值伪操作可以方便编程。;汇编语言程序结构例程(子程结构)汇编语言程序结构例程(子程结构) ;用二进制显示中断向量表中数据用二进制显示中断向量表中数据D0H的个数的个数key EQU 0D0H ;用符号表示常量用符号表示常量(关键字关键字)code SEGMENT ;代码段开始代码段开始 A
18、SSUME CS:code begin: MOV AX , 0000H MOV DS , AX MOV SI , 0000H MOV CX , 0400H MOV BX , 0 MOV AL , key next: CMP SI , AL JNZ point INC BX point: INC SI LOOP next CALL display ; 调用显示子程调用显示子程 MOV AH, 4CH ; 返回返回DOS INT 21H;用二进制显示用二进制显示BX内容子程内容子程display PROC MOV CX , 16 rotate: ROL BX , 1 MOV DL , BL AND
19、 DL , 01H ADD DL , 30H MOV AH , 2H INT 21H LOOP rotate RET ;子程返回子程返回display ENDP code ENDS ;代码段结束代码段结束 END begin ;指示程序结束和指示程序结束和 ;程序入口程序入口3、段的定义、段的定义 格式格式 段名段名 SEGMENT 、 、 段名段名 ENDS 段定义由伪操作段定义由伪操作SEGMENT开始开始、ENDS结束结束。其中:其中: SEGMENT 和和ENDS 必须成对出现,必须成对出现, 且语句前必须有段名,且语句前必须有段名,段名必须相同段名必须相同。 SEGMENT和和END
20、S语句之间可以有指令和其他伪操作语句之间可以有指令和其他伪操作, 表示存放在该段内存的变量、指令或其他伪操作对该段内存的处理表示存放在该段内存的变量、指令或其他伪操作对该段内存的处理 程序中可以定义多个段。程序中可以定义多个段。 程序经汇编、连接及装入内存后,段名为一具体的段值。程序经汇编、连接及装入内存后,段名为一具体的段值。aa SEGMENT ;数据段数据段1 str1 DB Hello! aa ENDSbb SEGMENT ;数据段数据段2 str2 DB 6 dup (?) bb ENDScc SEGMENT ;代码段代码段 ASSUME CS:ccASSUME DS:aa, ES:
21、bb start: CLD MOV AX , aa MOV DS , AX LEA SI , str1 MOV AX , bb MOV ES , AX LEA DI , str2 MOV CX , 6 REP MOVSB MOV AH , 4CH INT 21H cc ENDS END start D:masmDEBUG hello2.exe-U :查看代码段查看代码段12A0:0000 FC CLD12A0:0001 B89E12 MOV AX , 129E12A0:0004 8ED8 MOV DS , AX12A0:0006 8D360000 LEA SI , 000012A0:000A
22、B89F12 MOV AX , 129F12A0:000D 8EC0 MOV ES , AX12A0:000F 8D3E0000 LEA DI , 000012A0:0013 B90600 MOV CX , 000612A0:0016 F3 REPZ12A0:0017 A4 MOVSB12A0:0018 B44C MOV AH,4C12A0:001A CD21 INT 21、-D 129E:0 L10 ;查看数据段查看数据段1的内容的内容129E:0000 48 65 6C 6C 6F 21 00 00-00 00 00 00 00 00 00 00 Hello!.-D 129F:0 L10
23、;查看数据段查看数据段2的内容的内容129F:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .- -数据传送源程序:程序经汇编、连接后,装入内存的情况如下:数据传送源程序:程序经汇编、连接后,装入内存的情况如下:4、ASSUME 告诉汇编程序,哪一个段和哪一个段寄存器相对应告诉汇编程序,哪一个段和哪一个段寄存器相对应对对DS段只起指示作用,并无实际的操作段只起指示作用,并无实际的操作格式格式 ASSUME 段寄存器:段名段寄存器:段名 , 段寄存器段寄存器:段名段名, 其中其中 段寄存器段寄存器为为CS、DS、ES、SS中的一个中的一
24、个 段名段名为用伪操作为用伪操作SEGMENT定义过的段名定义过的段名例例 ASSUME CS: cc , DS:aa例例 用程序实现用程序实现 1234H + 5678Hvalueresult341278560000 data SEGMENT value DW 1234H, 5678H result DW ? data ENDS code SEGMENT ASSUME CS:code, DS:data start: MOV AX, data ;给给DS赋值赋值 MOV DS, AX MOV AX, value ;取数取数 ADD AX, value+2 ;两数相加两数相加 MOV resul
25、t, AX ;保存结果保存结果 MOV AH, 4CH ;返回返回DOS INT 21H code ENDS END start注释掉注释掉ASSUME语句,其汇编结果:语句,其汇编结果: data SEGMENT value DW 1234H, 5678H result DW ? data ENDS code SEGMENT; ASSUME CS:code, DS:data start: MOV AX, data MOV DS, AX MOV AX, value ADD AX, value+2 MOV result, AX MOV AH, 4CH INT 21H code ENDS END
26、startD:MASMMASM assumeMicrosoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981, 1988. All rights reserved.assume.ASM(8): Missing or unreachable CSassume.ASM(10): Cannot address with segment registerassume.ASM(11): Cannot address with segment registerassume.ASM(12): Cannot address
27、with segment register 49872 + 421341 Bytes symbol space free 0 Warning Errors 4 Severe ErrorsD:MASM程序中有程序中有ASSUME语句,经汇编,连接和装入内存后的情况:语句,经汇编,连接和装入内存后的情况:data SEGMENT value DW 1234H, 5678H result DW ? data ENDS code SEGMENT ASSUME CS:code, DS:data start: MOV AX, data ;给给DS赋值赋值 MOV DS, AX MOV AX, value
28、;取数取数 ADD AX, value+2 ;两数相加两数相加 MOV result, AX ;保存结果保存结果 MOV AH, 4CH ;返回返回DOS INT 21H code ENDSD:MASMDEBUG assume.exe- -R ;查看程序执行前各寄存器查看程序执行前各寄存器AX=0000 BX=0000 CX=0023 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1295 ES=1295 SS=12A5 CS=12A6 IP=0000 NV UP EI PL NZ NA PO NC12A6:0000 B8A512 MOV AX,12A5-
29、 -U ;查看在内存的程序查看在内存的程序12A6:0000 B8A512 MOV AX, 12A512A6:0003 8ED8 MOV DS, AX12A6:0005 A10000 MOV AX, 0000 12A6:0008 03060200 ADD AX, 0002 12A6:000C A30400 MOV 0004 , AX12A6:000F B44C MOV AH, 4C12A6:0011 CD21 INT 21、-注意:注意: 程序装入内存后,执行程序前,程序装入内存后,执行程序前,当前的当前的DS值并非程序定义的值并非程序定义的data段值,段值, 1295 不等于不等于 12A
30、5思考:思考: 如果上例中没有如果上例中没有 MOV DS , AX 程序执行的结果会怎样?程序执行的结果会怎样?D:MASMDEBUG assume.exe- -R ; ;查看程序执行前各寄存器查看程序执行前各寄存器AX=0000 BX=0000 CX=0023 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000DS=1295 ES=1295 SS=12A5 CS=12A6 IP=0000 NV UP EI PL NZ NA PO NC12A6:0000 B8A512 MOV AX,12A5- -U ; ;查看在内存的程序查看在内存的程序12A6:0000 B8A
31、512 MOV AX, 12A512A6:0003 A10000 MOV AX, 0000 12A6:0006 03060200 ADD AX, 0002 12A6:000A A30400 MOV 0004 , AX12A6:000D B44C MOV AH, 4C12A6:000F CD21 INT 21、data SEGMENT value DW 1234H, 5678H result DW ? data ENDS code SEGMENT ASSUME CS:code, DS:data start: MOV AX, data ;给给DS赋值赋值 ; MOV DS, AX MOV AX,
32、value ;取数取数 ADD AX, value+2 ;两数相加两数相加 MOV result, AX ;保存结果保存结果 MOV AH, 4CH ;返回返回DOS INT 21H code ENDS结论:结论:1. ASSUME语句只起指示作用语句只起指示作用, 没有赋值作用没有赋值作用2. 程序中用到内存操作数时,程序中用到内存操作数时, 应按操作数的寻址方式应按操作数的寻址方式, 给相应的段寄存器赋值给相应的段寄存器赋值。5、过程定义伪操作、过程定义伪操作 格式格式 过程名过程名 PROC 类型类型 、 过程名过程名 ENDP 过程过程定义由伪操作定义由伪操作PROC开始、开始、END
33、P结束结束。其中:其中: PROC 和和ENDP 必须成对出现必须成对出现, 且语句前必须有过程名,且语句前必须有过程名,过程名必须相同过程名必须相同。 PROC和和ENDP语句之间为子程序的指令序列。语句之间为子程序的指令序列。 程序中可以定义多个过程。程序中可以定义多个过程。 程序经汇编、连接及装入内存后程序经汇编、连接及装入内存后, 过程名为一具体的内存地址,指示子程序入口。过程名为一具体的内存地址,指示子程序入口。过程名常用作过程名常用作CALL调用指令的操作数调用指令的操作数, 子程的最后安排子程的最后安排RET返回指令,使执行完子程后能返回调用处返回指令,使执行完子程后能返回调用处
34、。过程有两种类型:过程有两种类型:NEAR和和FAR 无类型项时,无类型项时,默认为默认为NEAR类型类型。 当过程与调用指令不在同一段时,应将过程定义为当过程与调用指令不在同一段时,应将过程定义为 FAR 类型。类型。过程类型决定子程中过程类型决定子程中RET的返回类型的返回类型例例1 display PROC 、 、 C3H 、 RET ;NEAR 属性的过程对应段内返回属性的过程对应段内返回 display ENDP例例2 display PROC FAR 、 、 CBH 、 RET ;FAR属性的过程对应段间返回属性的过程对应段间返回 display ENDP 格式格式 END 启动地
35、址启动地址 作用是指示源程序到此结束。作用是指示源程序到此结束。汇编程序对汇编程序对 END 之后的语句不进行处理。之后的语句不进行处理。程序中所有有效语句应放在程序中所有有效语句应放在 END 语句之前。语句之前。程序的第一条语句从程序的第一条语句从“启动地址启动地址”处开始处开始 源程序中必须有源程序中必须有 END 结束语句。结束语句。 汇编程序对无汇编程序对无 END 语句的源程序不进行处理语句的源程序不进行处理, 只给出无只给出无 END 语句错误信息。语句错误信息。7、汇编结束伪指令、汇编结束伪指令假设假设 TEST.asm 是一个无是一个无 END 语句的汇编语言源程序。语句的汇
36、编语言源程序。其汇编结果如下其汇编结果如下:D: MASM TEST; Microsoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981, 1988. All rights reserved.End of file encountered on input file End of file encountered on input file 49968 + 421181 Bytes symbol space free 0 Warning Errors 0 Severe ErrorsD:由于没有由于没有END语
37、句,汇编程序根本没对源程序进行汇编,语句,汇编程序根本没对源程序进行汇编,此时显示警告性错误总数为此时显示警告性错误总数为 0,严重性错误总数为,严重性错误总数为 0,用户不要被此值的误导用户不要被此值的误导。启动地址是一个标号或过程名启动地址是一个标号或过程名, 指示程序的入口。指示程序的入口。程序装入内存后,系统跳转到入口处程序装入内存后,系统跳转到入口处, 开始执行程序。开始执行程序。aa SEGMENT ;数据段数据段1 str1 DB Hello! aa ENDSbb SEGMENT ;数据段数据段2 str2 DB 6 dup (?) bb ENDScc SEGMENT ;代码段代
38、码段 ASSUME CS:cc ASSUME DS:aa, ES:bb start: CLD MOV AX , aa MOV DS , AX LEA SI , str1 MOV AX , SEG str2 MOV ES , AX MOV DI , OFFSET str2 MOV CX , 6 REP MOVSB MOV AH , 4CH INT 21H cc ENDS END start D:masmDEBUG hello.exe- -U :查看代码段查看代码段129F:0000 FC CLD129F:0001 B89D12 MOV AX , 129D129F:0004 8ED8 MOV DS
39、 , AX129F:0006 8D360000 LEA SI , 0000129F:000A B89E12 MOV AX , 129E129F:000D 8EC0 MOV ES , AX129F:000F BF0000 MOV DI , 0000129F:0012 B90600 MOV CX , 0006129F:0015 F3 REPZ129F:0016 A4 MOVSB129F:0017 B44C MOV AH , 4C129F:0019 CD21 INT 21、- -D 129d:0 l10 ;查看数据段查看数据段1的内容的内容129D:0000 48 65 6C 6C 6F 21 00
40、 00-00 00 00 00 00 00 00 00 Hello!.- -D 129e:0 l10 ;查看数据段查看数据段2的内容的内容129E:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .- -3.3.4 汇编语言的运算符汇编语言的运算符 表达式表达式l 由常量、标号、变量和一些操作符构成。由常量、标号、变量和一些操作符构成。l 汇编程序对表达式进行运算后,得到一个确定的数值,汇编程序对表达式进行运算后,得到一个确定的数值, 再把这个数值汇编到指令中。再把这个数值汇编到指令中。l 据表达式所表示的内容,分数字表达式、地址表达式
41、。据表达式所表示的内容,分数字表达式、地址表达式。l 表达式是指令或伪操作的操作数表达式是指令或伪操作的操作数; 表达式中的操作符由汇编程序完成表达式中的操作符由汇编程序完成例例 MOV AX, 12 - - 4 ;MOV AX, 8 ;数字表达式数字表达式 LEA BX, string + 4 ;地址表达式地址表达式 表达式中的操作符表达式中的操作符有以下几类有以下几类:1. 算术运算符算术运算符 ( +、-、*、/、MOD )2. 逻辑运算符逻辑运算符 ( AND、OR、NOT、XOR )3. 关系运算符关系运算符 ( EQ、NE、GT、GE、LT、LE ) 真:真:FFFFH; 假假:
42、04. 数值返回操作符数值返回操作符 ( SEG、OFFSET )5. 类型操作类型操作 ( PTR )6. 地址记数器地址记数器( $ ) 例例: 1. 算术运算符算术运算符 ( +、- -、*、/、MOD(取余数取余数) )MOV AX, 6 * 8 MOV AX, 482. 逻辑运算符逻辑运算符 (AND、OR、NOT、XOR) MOV AX, 80H OR 70H MOV AX,0F0H3. 关系运算符关系运算符 ( EQ、NE、GT、GE、LT、LE ) 真:真:FFFFH; 假假: 0MOV AX, 1 GE 2 MOV AX, 0 4. 数值返回操作符数值返回操作符 ( SEG、
43、OFFSET ) SEG 取符号地址的段地址取符号地址的段地址 例例 MOV AX , SEG yy OFFSET 取符号地址的偏移地址取符号地址的偏移地址 例例 MOV BX , OFFSET yybb SEGMENT yy DB 6 dup (?) bb ENDScc SEGMENT ASSUME CS:cc, DS:aa, ES:bbstart : CLD MOV AX , SEG yy MOV ES , AX MOV DI , OFFSET yy MOV CX , 6 . cc ENDS END startaa SEGMENTxx DB Hello! aa ENDSbb SEGMENT yy DB 6 dup (?) bb END
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年淄博市张店区幼儿园教师招聘笔试备考试题及答案解析
- 2026年绥化市北林区街道办人员招聘考试模拟试题及答案解析
- 2026年内江市东兴区幼儿园教师招聘笔试参考题库及答案解析
- 2026年新疆维吾尔自治区哈密市街道办人员招聘考试模拟试题及答案解析
- 2026年丽江地区古城区网格员招聘考试参考题库及答案解析
- 2026三年级下《两位数乘两位数》思维拓展训练
- 2026年兰州市七里河区幼儿园教师招聘笔试参考试题及答案解析
- 2026年丹东市振兴区幼儿园教师招聘笔试备考题库及答案解析
- 2026年山西省大同市幼儿园教师招聘笔试参考试题及答案解析
- 2026八年级下《一次函数》同步精讲
- 2026宁波市中考历史知识点背诵清单练习含答案
- 2026年九年级数学中考模拟试卷(重庆卷)
- 郑州电力高等专科学校2026年单独招生《职业适应性测试》模拟试题及答案解析
- 2025-2026学年河北省沧州市中考物理最后冲刺浓缩卷(含答案解析)
- 体育场馆内部治安管理制度汇编
- 2026年高考数学函数与导数试题
- 大学军训军事理论课课件
- 2025年儿童摄影行业发展与创新趋势报告
- 《危险化学品安全法》解读与要点
- 2026秋招:贵州黔晟国有资产经营公司笔试题及答案
- 2026春人教版八年级英语下册重点单词-词性转换背诵默写(背诵版)
评论
0/150
提交评论