NEW04第四章汇编程序设计基础(自学).pptVIP

  • 1
  • 0
  • 约1.25万字
  • 约 91页
  • 2017-06-03 发布于四川
  • 举报
基本框架 STATCK SEGMENT STACK ;定义堆栈段 …….. STACK ENDS DATA SEGMENT ;定义数据段 …… DATA ENDS CODE SEGMENT ;定义代码段 ASSUME CS:CODE, DS:DATA, SS:STATCK ;仅告诉汇编程序, 并不能赋值 START: MOV AX, DATA MOV DS, AX …….. MOV AH, 4CH ;程序结束 返回DOS INT 21H CODE ENDS END START (X+125-X*Y)/Z STATCK SEGMENT STACK DW 100H DUP(?) STACK ENDS DAT SEGMENT X DW 3 Y DW 4 Z DW 10 DAT ENDS COD SEGMENT ASSUME CS:COD, DS:DAT, SS:STACK START: MOV AX, DAT MOV DS, AX MOV AX, X IMUL Y MOV CX, AX MOV BX, DX MOV AX, X ADD AX,125 CWD 举例 例:按15行*16列的表格形式显示ASCII码10H ~FFH的所有字符。每16个字符为1行,每行中的相邻两个字符之间用空格隔开。 两个6字节数相加 第4章汇编程序设计基础 2. 子程序调用与 调用格式: Call 子程序入口地址 返回格式: Ret n (其中n是偶数) 第4章汇编程序设计基础 在编写子程序时,应满足下面的基本要求: 1.适度地划分并确定子程序功能 2.选择适当的参量传递途径 3.信息的保存 4.清晰的子程序文本 4.子程序与主程序的参数传递和设计举例 第4章汇编程序设计基础 (1) 通过寄存器传递参量 例12 设在数据段中有一数组,数组中元素为字类型。试编制程序,用减奇数法对数组中各个数据逐一开平方,并把结果依次存入字节数组PFG中。 DATA SEGMENT DA1 DW 1234H,5678H,3456H COUNT EQU ($-DA1)/2 PFG DB COUNT DUP(0) DATA ENDS 第4章汇编程序设计基础 DATA SEGMENT DA1 DW 1234H,5678H,3456H COUNT EQU ($-DA1)/2 PFG DB COUNT DUP(0) DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS 第4章汇编程序设计基础 CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX MOV CX,COUNT ;循环计数器初值 LEA SI,DA1 LEA DI,PFG LOP: MOV AX,[SI] ;取被开方数 第4章汇编程序设计基础 PUSH CX ; 保存循环计数器 CALL SQR_PROC ; 调用子程序 MOV [DI],CL ;存平方根 POP CX ;恢复循环计数器 ADD SI,2 ;修改地址指针 INC DI LOOP LOP MOV AH,4CH INT 21H 第4章汇编程序设计基础 ;子程序SQR_PROC :开平方 ; 入口参数: ; (AX) 为被开方数 ; (CL)为开方结果 SQR_PROC PROC ;开平方子程序 MOV CL,0 ;开平方计数器CL?0 MOV DX,1 ;奇数?1 第4章汇编程序设计基础 SQR: SUB AX,DX ;减奇数

文档评论(0)

1亿VIP精品文档

相关文档