微机原理及接口技术实验指导内容摘要:

NG3 DD ’ AB’,’ CD’ 在图 33( c)显示了它们存储器中的存放情况。 ④带 DUP 表达式: DUP 是定义重复数据操作符。 在表达式中,使用 DUP 操作符格式是: 4 1 H4 2 H4 3 H4 4 H4 5 H4 6 H4 2 H4 1 H4 4 H4 3 H4 6 H4 5 H4 2 H4 1 H0 0 H0 0 H4 4 H4 3 H0 0 H0 0 HS T R I N G 2 S T R I N G 3( a ) D B 伪 指 令( b ) D W 伪 指 令 ( c ) D D 伪 指 令 图 33 DB, DW, DD伪指令 中字符串表达式的存放情况 变量名DDDWDB 表达式 1, DUP(表达式 2) 其 中表达式 1 是重复的次数,表达式 2 是重复的内容。 例如: D_B1 DB 20 H DUP(。 ) D_B2 DB 10H DUP(’ ABCD’) D_B3 DW 10H DUP( 4) 第 1 语句表示保留 20H 个字节,每个字节可预置任意内容。 第 2 语句是重复 10H 个字符串“ ABCD”,共占有 40 H 个字节、第 3 语 句是重复 10 H 个字单元,每个单元预置为 4,共占有 20H 个字节。 3.标号 标号是一条指令目标代码的符号地址,它常作为转移指令(含子程序调用指令)的操作数。 例如: „ LOP1:„„ ┇ LOOP: LOP1 ┇ JNE NEXT NEXT:„ 与变量类似,每个标号亦具有 3 个属性: ( l)段属性( SEG):表示这条指 令目标代码在哪个逻辑段中。 ( 2)偏移量属性( OFFSET):表示这条指令目标代码的首字节在段内离段起始点的字节数。 同样,上述两个属性构成了这条指令目标代码首字节的逻辑地址。 ( 3)距离属性:表示本标号可作为段内或段间的转移特性。 距离属性分为两种:① NEAR 13 (近):本标号只能被标号所在段的转移和调用指令所访问(即段内转移);③ FAR(远):本标号可被其他段(不是标号所在段)的转移和调用指令访问(即投间转移)。 3. 1. 3 表达式与运算符 表达式由操作数和运算符组成,在 汇编时一个表达式得到一个值。 下面结合运算符讲述表达式。 用一个运算符可以对一个操作数或几个操作数进行运算,这就构成了一个表达式,从而得到一个新的值。 ASM86 中分 6 类运算符,包括算术运算符、逻辑运算符、关系运算符、分析运算符、组合运算符和分离运算符,它们在汇编时完成相应运算。 1.算术运算符 十,一, *,/是加减乘除运算符。 MOD 是除法取余运算符。 例如, 32 MOD 5=2。 SHL 是左移操作符。 例如, 21H SHL 2=84H。 SHR 是右移操作符。 2.逻辑运算符 AND 是逻辑“与”操作符。 例如, 24H AND OFH=04H。 OR 是逻辑“或”操作符。 例如, 24H OR OFH=2FH。 XOR 是“异或”操作符。 例如, 24 H XOR OFH=2BH。 NOT 是逻辑“非”操作符。 例如, NOT 24H=ODBH。 3.关系运算符 关系运算是逻辑判定式的,当为“真”时结果取 OFFFFH,当为“假”时结果取 0。 关系运算是数值型的。 EQ 等于。 例如,已赋给符号 PP 为 25,则 25 EQ PP=OFFFFH。 NE 不等于。 例如, 25 NE PP=0。 LT 小于。 例如, 251- T。 26=OFFFFH。 LE 刁。 于等于。 例如, 25 LE PP=OFFFFH。 GT 大于。 例如, 26 GT 25=OFFFFH。 GE 大干等于。 例如, 24 GE PP=0。 4.分析运算符 ( 1) SEG 求段基址 格式: SEG 符号名 ( 2) OFFSET 求偏移地址 格式 : OFFSET 符号名 ( 3) TYPE 求符号名类型值 格式: TYPE 符号名 符号名类型值见表 31 所列。 表 31符号名类型值 类型 1字节 2字节 四字节 8字节 10 字节 近程 远程 BYTE WORD DWORD QWORD TBYTE NEAR FAR 类型值 1 2 4 8 10 - 1 - 2 (4) SIZE 求为符号名分配的字节数 格式: SIZE 符号名 为符号名定义的数据项必须是用重复格式 DUP()定义的。 ( 5) LENGTH 求为符号名分配的项数 格式: LENGTH 符号名 14 为符号名定义的数据项必须是用重复格式 DUP()定义的。 SIZE 符号名 =(LENGTH符号名 )*( TYPE符号名 ) 5.组合运算符 组合运算符是用来改变或建立符号名的新类型。 (1)定义符号名为新类型 格式: 类型 PTR 符号名 例如,设内存变量 D1 是字节属性,把它的两个字节内容送到 AX 中。 属性符号见 表 31所列。 MOV AX, WORD PTR D1 这里的符号名可以是间址、变址寻址、基址加变址寻址表示的存储器操作数。 ( 2)指定新类型 与 PTR 类似,可为某个符号名建立新类型。 格式: THIS 类型 例如: LABC EQU THIS BYTE LABD DW 4321H,2255H MOV AL, LABC ; AL=21H MOV AX, LABD ; AX= 4321H 符号名 LABC 与 LABD 有相同的段地址和偏移地址,但 LABC 是字节类型,而 LABD 是字类型。 6.分离运算符 (1) LOW 取低字节 格式: LOW 表达式 (2) HIGH 取高字节 格式: HIGH 表达式 ; 例如:设 SSY= 2050H MOV AL, LOW 3080H ; AL=80H MOV AH, HIGH SSY ; AH= 20H MOV CL, LOW 3A4BH ; CL=4BH 7.汇编运算符的优先级(见表 32 所示) 表 32运算符的优先级别 优先级别 运 算 符 0 括号中的表达式 高级 1 ILENGTH, SIZE, WIDTH, MASK 2 PTR, OFFSET, SEG, TYPE, THIS,段前缀(段寄存器名:) 3 HIGH, LOW 4 *,/, MOD(求余数), SHL, SHR 5 +,一 6 EQ, NE, LT, LE, GT, GE 7 NOT 8 AND 低级 9 OR, XOR 10 SHORT 15 系统功能调用 为给编写汇编语言源程序提供方便, MSDOS 系统中设置了几十个内部子程序,它们可完成 I/ O 设备管理、存储管理、文件管理和作业管理等功能。 对我们来说,它们是几十个独立中断服务程序,它 们的人口已由系统置入中断人口地址表中,在汇编语言源程序中可用软中断指令调用它们。 一般我们常用的软中断指令有 8 条,系统规定它们的中断 类型码为 20H~ 27H,它们各自的功能及入 口/出口参数如表 33 所示。 表 33 常用软中断功能及参数 软中断指令 功能 入口参数 出口参数 INT 20H 程序正常退出 INT 21H 系统功能调用 AH=功能号 相应人口号数 相应 出口号数 INT 22H 结束退出 INT 23H CTRL- Break处理 INT 24H 出错退出 AL=驱动器号 INT 25H 读盘 CX=读人扇区数 : CF=:1:0 DX=起始逻辑扇区号 DS: BX=内存缓冲区地 址 AL=驱动器号 CX=写盘扇区数 软中断指令 功能 入口参数 出口参数 INT 26H 写盘 DX=起始逻辑扇区号 CF=:1:0 DS: BX=内存缓冲区地址 INT 27H 驻留退出 从表 33 中可看出,这些软中断完全隐蔽了设备的物理特性和接口方式,调用它们时只需要先设置好 入 口参数,随后安排一条款中断指 令“ INT n”( n=20~ 27H),即可转去执行相应的子程序。 其中“ 21H”是系统功能调用,它本身包含 80 多个子程序,每个子程序对应一个功能号,其编号从 0~ 57H。 系统功能调用中的几十个子程序成为汇编语言程序员的重要工具,程序员不必了解所使用设备的物理特性、接口方式及内存分配等,不必编写繁锁的控制程序。 调用它们时,采用统一的格式,只需使用以下 3 个语句: (1)传送入 口参数到指定寄存器中; (2)功能号送入 AH 寄存器中; (3) INT 21H。 有的子程序无入 口参数,则只需 安排后两个语句,调用结束后,系统将出口参数送到指定寄存器中或从屏幕显示出来。 例如: 2 号系统功能调用可用如下指令: MOV DL,要求打印的字符 16 MOV AH, 1 INT 21H 调用结果是将 DL 寄存器中的可打印字符通过屏幕显示输出(或打印机打印输出)。 下面选择一部分常用的系统功能调用作简要说明: 1.键盘输入单字符 这是 1 号系统功能调用,使用格式如下所示 : MOV AH,1 INT 21H 它没有入 口参数,执行 1 号系统功能调 用时,系统等待键盘输入,待程序员按下任何一键,系统先检查是否 CtrlBreak 键,如果是则退出,否则将键人字符的 ASCⅡ码置入 AL 寄存器中,并在屏幕上显示该字符。 2.键盘输入字符串 这是 OAH 号系统功能调用,其功能是将键盘输入的字符串写入 到内存缓冲区中,因此必须事先在内存储器中定义一个缓冲区。 其第 1 字节给定该缓冲区中能存放的字节个数,第 2字节留给系统填写实际键入 的字符个数,从第 3 个字节开始用来存放键入的字符率,最后键入 回车( ↙ )键表示字符串结束。 如果实际 键入 的字符数不足填满缓冲区时,则其 余字节填“ 0” ;如果实际键入 的字符数超过缓冲区的容量,则超出的字符将被丢失,而且响铃,表示向程序员发出警告。 OAH 号系统功能调用的使用格式如下所示:。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。