文档详情

第3章 指令系统及汇编语言程序设计-2.ppt

发布:2017-06-17约1.03万字共10页下载文档
文本预览下载声明
例:字符串输出显示 DATA SEGMENT MESS1 DB ‘Input String:’, 0DH,0AH,’$’ DATA ENDS CODE SEGMENT ┇ MOV AH,09 MOV DX,OFFSET MESS1 INT 21H ┇ $字符串结束标记 3.4 汇编语言程序格式 例 键盘输入字符串:功能号0AH 预先定义好缓冲区,格式为: 0DH N1 N2 整个缓冲区 最大键入字符数 实际键入字符数 DAT1 DB 20,?,20 DUP(?) 3.4 汇编语言程序格式 例:程序结束后返回DOS操作系统 MOV AH,4CH INT 21H 3.4 汇编语言程序格式 3.5 汇编语言程序设计基础 设计步骤: 根据实际问题抽象出数学模型 确定算法 画程序流程图 分配内存工作单元和寄存器 程序编码 调试 例[3.38] 编程序,求表达式Z=((X+Y)*8-X)/2的值,并将Z存入RESULT单元.其中,X、Y为字值,存在VARX和VARY单元中。 一、顺序结构 分析: 1,定义数据段 (VARX, VARY, RESULT) 2 , 分配寄存器:DX ? 中间结果; RESULT ? DX 3 , 返回操作系统, MOV AH,4CH INT 21H; 3.5 汇编语言程序设计基础 ;源程序 DATA SEGMENT ;数据段 VARX DW 6 VARY DW 7 RESULT DW ? DATA ENDS CODE SEGMENT ;代码段 ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX 3.5 汇编语言程序设计基础 ; Z=((X+Y)*8-X)/2 MOV DX, VARX ADD DX, VARY ; X+Y MOV CL, 3 SAL DX, CL ; *8 SUB DX, VARX ; -X SAR DX, 1 ; /2 MOV RESULT, DX MOV AH, 4CH INT 21H CODE ENDS END START 3.5 汇编语言程序设计基础 ; Z=((X+Y)*8-X)/2 MOV AX, VARX ADD AX, VARY ; X+Y ? AX MOV BX, 8 IMUL BX ; AX*8?DX AX SUB AX, VARX SBB DX, 0 ; -X MOV BX, 2 IDIV BX ; /2 MOV RESULT, AX MOV AH, 4CH INT 21H CODE ENDS END START 3.5 汇编语言程序设计基础 例[3.39] 查表求X 的平方值,存入RESULT单元 TABLE 0 1 4 9 16 … 144 169 196 225 BX? RESULT DATA X 分析: 1,定义数据段 2 ,分配寄存器:BX ? 表首地址; AH ? 0,AL ? X; BX ? BX+AX (平方值地址) RESULT?[BX]平方值 3 , 返回操作系统, MOV AH,4CH INT 21H; 3.5 汇编语言程序设计基础 ;源程序 DATA SEGMENT ;数据段 TABLE DB
显示全部
相似文档