预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共61页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第4章第4章:例源程序文件wjl301.asm4.2.3.程序开始4.2.3.程序终止从上述程序中,我们可总结出如下结论: ①SEGMENT和ENDS前面必须有标号,而且在相互配对的段,它们前面要使用相同的标号。 ②ASSUME语句可使汇编器知道CS、DS、SS指向哪个段,但它只在汇编时起作用,在运行时CPU并不知道除CS外的其它段地址,所以必须在程序中用指令进行赋值。 ③首条被执行的语句有一个标号,在程序的结尾使用END后跟上这个标号,用以标出这个程序的开始执行处。4.2.4过程定义伪指令汇编语言中,子程序要用一对过程伪指令PROC和ENDP声明,格式如下: 过程名 PROC[NEAR|FAR] …… ;过程体 过程名 ENDP 可选的参数指定过程的调用属性。没有指定过程属性,则采用默认属性[near] NEAR属性(段内近调用)的过程只能被相同代码段的其他程序调用 FAR属性(段间远调用)的过程可以被相同或不同代码段的程序调用4.2.4:子程序编写注意事项4.2.4:子程序编写注意事项(续)[例4-19]用过程实现多字节BCD码相加。 DATASEGMENT FIRSTDB10,20,30,40 SECONDDB50,60,70,80 SUMDB4DUP(?) DATAENDS STACKSEGMENT STADB20DUP(?) TOPEQULENGTHSTA STACKENDS CODESEGMENT ASSUMECS:CODE,DS:DATA, ASSUMESS:STACK,ES:DATA START:MOVAX,DATA MOVDS,AX MOVES,AX MOVAX,STACK MOVSS,AX MOVAX,TOP MOVSP,AX MOVSI,OFFSETFIRST MOVBX,OFFSETSECOND MOVDI,OFFSETSUM MOVCX,04 CLD CLC ADITI:CALLAAA LOOPADITI MOVAH,4CH INT21H AAAPROCNEAR LODSB ADCAL,[BX] DAA STOSB INCBX RET AAAENDP CODEENDS ENDSTART第4章:含数据区的子程序第4章:多出口子程序4.3宏指令例1宏定义可以无变元 宏定义:SAVEREGMACRO PUSHAX PUSHBX PUSHCX PUSHDX PUSHSI PUSHDI ENDM 宏调用:SAVEREG 宏展开:将宏定义体的内容(具有独立功能的代码段)全部列出。例2宏定义带形式参数 宏定义:FOOMACROP1,P2,P3 MOVAX,P1 P2P3 ENDM 宏调用:FOOWORD_VAR,INC,AX 宏展开:+MOVAX,WORD_VAR +INCAX例4-24宏定义带形式参数 宏定义:SHIFTMACRON,REG,CC MOVCL,N S&CCREG,CL ENDM 宏调用:SHIFT5,AX,HR 宏展开:+MOVCL,5 +SHRAX,CL第4章:宏的实例3第4章:宏的实例4子程序调用工作方式:第4章:宏与子程序的比较第4章:宏与子程序的比较结论4.4DOS与BIOS调用计算机的硬件环境必须在操作系统的管理下才能工作。 裸机:缺少操作系统的计算机。 操作系统可分为:磁盘操作系统(DOS)、Windows、Linux等。 DOS的管理功能:管理I/O设备、磁盘和文件。 DOS常用的软件中断命令:INT20H~INT3FH。调用时,只要给定入口参数,写一条中断指令INTn即可。 DOS常用的软中断命令4.4:系统功能调用步骤4.4.1DOS系统功能调用4.4.1:01H号DOS功能调用4.4.1:02H号DOS功能调用4.4.1:例1回车换行的子程序4.4.1:05H号DOS功能调用 无回显键盘输入单字符 功能与1号功能调用基本相同,惟一的差别是键入的字符不送屏幕显示。 4.4.1:09H号DOS功能调用4.4.1:例2提示按任意键继续4.4.1:0AH号DOS功能调用4.4.1:0BH号DOS功能调用4.4.1:4CH号DOS功能调用4.4.2ROM-BIOS功能调用4.4.2ROM-BIOS功能调用2.显示的BIOS调用(10H号系统调用) (1)设置显示器显示模式(00H号子功能) 使用方法: MOV AH,00H MOV AL,显示模式编号 INT 10H (3)置光标位置(02H) 功能:设置光标