This presentation is the property of its rightful owner.
1 / 14

# 一、设计一个完整的汇编语言源程序，实现 Z=X+Y 。 PowerPoint PPT Presentation

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

#### Presentation Transcript

1. 实现加法运算的程序段如下：

；取被加数

MOV AL，X

MOV BL，Y

；取加数

；完成X+Y运算

；把结果保存在目的单元中

MOV Z，AL

2. 数据段定义

DATA SEGMENT

；数据段起始

X DB 32H

；数据段内容

Y DB 25H

Z DB 1 DUP（？）

DATA ENDS

；数据段结束

3. 堆栈段定义

STACKA SEGMENT STACK

DB 100 DUP（？）

STACKA ENDS

4. 代码段定义

CODE SEGMENT

ASSUME CS:CODE, SS:STACKA, DS:DATA, ES:DATA

CODE ENDS

DATA SEGMENT

ORG 2100H

X DB 32H

Y DB 25H

Z DB 1 DUP(?)

DATA ENDS

STACKA SEGMENT

DB 100 DUP(?)

STACKA ENDS

CODE SEGMENT

ASSUME CS:CODE, SS:STACKA, DS:DATA, ES:DATA

START: MOV AX, DATA

MOV DS, AX

MOV ES, AX

MOV AL, X

MOV BL, Y

MOV Z, AL

MOV AH, 4CH

INT 21H

CODE ENDS

END START

DATA SEGMENT

··· ···

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, SS:STACKA, DS:DATA, ES:DATA

START: MOV AX, DATA

MOV DS, AX

MOV ES, AX

··· ···

MOV AH, 4CH

INT 21H

CODE ENDS

END START

1。主程序方式

DATA SEGMENT

··· ···

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, SS:STACKA, DS:DATA, ES:DATA

MAIN PROC FAR

START:PUSH DS

SUB AX，AX

PUSH AX

MOV AX, DATA

MOV DS, AX

MOV ES, AX

··· ···

RET

MAIN ENDP

CODE ENDS

END START

2。定义为过程形式

1. 起始地址说明伪指令 ORG

2. 数据定义伪指令 DB、DW、DD、DF、DQ、DT、DUP

⑴ 字节变量定义伪指令 DB

（逗号分隔的数据项）给出，每个数据项占一个字节。

X DB 1，3，5 +3-1，9

X

0 1

⑵ 字变量定义伪指令 DW

0 3

0 7

0 9

Y DW 1005h, 0028h

⑶ 双字变量定义伪指令 DD

05h

Y

2010h

10h

2011h

⑷ 三字变量定义伪指令 DF

28h

2012h

00h

2013h

⑸ 四字变量定义伪指令 DQ

⑹ 五字变量定义伪指令 DT

Z DQ 1020304050607080h

C1 DB ‘A’, ‘B’, ‘C’

C2 DW ‘A’, ‘B’ , ‘C’

Z

8 0 h

2100h

2101h

7 0 h

4 1 h

2020h

C1

2021h

6 0 h

4 2 h

5 0 h

4 3 h

4 0 h

C2

4 1 h

3 0 h

0 0 h

2106h

2 0 h

4 2 h

2107h

1 0 h

0 0 h

2027h

4 3 h

0 0 h

2028h

Y

N

Y

N

N

Y

### 第一次实验内容

• 1．2：汇编语言编程与调试方法

• （1）汇编语言程序结构

• （2）汇编语言程序开发过程

• （3）MS—DOS EDIT文本编辑

• （4）TD使用方法

• 1．3．1：简单程序设计实验

• P25：例1．1

• P26：实验内容1

• P27：实验内容2

• P27：实验内容3

### p27实验(2)

data segment

x dd 02a8b7654h

y dw 5abch

z dw ?

f dw ?

data ends

stacka segment para stack 'stack'

db 100 dup(?)

stacka ends

code segment

assume ds:data,cs:code,ss:stacka,es:data

start: mov ax,data

mov ds,ax

mov es,ax

mov ax,word ptr x

mov dx,word ptr x+2

div y

mov z,ax

mov f,dx

mov ah,4ch

int 21h

code ends

end start