河南理工大学微机原理与单片机接口技术 程序设计071020课件.ppt
文本预览下载声明
了解的内容:段各类属性(如:对齐类型、组合类型等)的含义,源程序的各种辅助说明伪指令。
掌握的内容:段寄存器说明语句的作用,堆栈段定义的特殊性。
熟练掌握的内容:段的完整定义和简化定义。
程序的四大结构(顺序结构、分支结构、循环结构和子程序)在汇编语言中的表现形式。
汇编语言的常用编程工具——MASM、LINK和Debug——的使用。;机器语言、汇编语言和高级语言;CODE1 SEGMENT
ASSUME CS:CODE1, DS:DATA1
START:MOV AX, DATA1
MOV DS, AX
XOR AX, AX ;用AX来对正数计数
XOR BX, BX ;用BX来对负数计数
XOR DX, DX ;用DX来对零计数
MOV CX, data ;用CX来进行循环计数
JCXZ save ;考虑数组的元素个数为0的情况
LEA SI, data+2 ;用指针SI来访问整个数组;again: CMP word ptr [SI], 0
JL lower
JE equal
INC AX
JMP loop1
lower: INC BX
JMP loop1
equal: INC DX
loop1: ADD SI, 2
LOOP again
save: MOV Positive, AX ;把各类的统计数保存到内存单元中
MOV Negative, BX
MOV Zero, DX
MOV AX, 4C00H
INT 21H
CODE1 ENDS
END START;汇编语言源程序书写格式;第二部分是操作符。
第三部分是参数域。参数域都可由以下几种形式组成:常数、寄存器名、存储器操作数和表达式。
有三种运算符:算术运算符、逻辑运算符和关系运算符;两种操作符:数值回送操作符和属性操作符。;数据定义及存储分配伪指令
格式:[变量名] DB/DW/DD/DQ/DT 数据项表 [;注释];段定义伪指令SEGMENT/ENDS
格式:
段名 SEGMENT [定位类型] [组合类型] [`类别`]
┇ ;段内语句序列
段名 ENDS;过程定义伪指令
定义子程序的格式为:
过程名 PROC [NEAR]/[FAR]
┇
RET
┇
过程名 ENDP;程序设计步骤;程序的基本结构;START: MOV AX,STACK_SEG
MOV SS,AX
MOV SP,OFFSET TOP
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA_SEG
MOV DS,AX
MOV AX,X
ADD AX,8
MUL X
ADD AX,8
MUL X
ADD AX,6
MOV Y,AX
RET
MAIN ENDP
CODE_SEG ENDS
END START;data segment ;数据段
msg db 0dh,0ah,07h,Hello$
data ends
ss_seg segment ;堆栈段
db 256 dup(?)
ss_seg ends
code segment ;代码段
assume cs:code,ds:data,ss:ss_seg
main proc far
push ds ;标准序
mov ax,0
push ax
mov ax,data ;设置数据段
mov ds,ax
lea dx,msg ;取字符串地址;在数据段中存放两个32位二进制无符号数DATA1和DATA2,编制一程序计算两数之和,结果存于RESULT单元中。
title double word add program
data segment para public data
data1 dd 1565764587
data2 dd 1293773646
result dd ?
data ends
ss_seg segment para s
显示全部