汇编语言分支结构程序设计实验.docx

上传人:b****0 文档编号:12533682 上传时间:2023-04-20 格式:DOCX 页数:15 大小:16.35KB
下载 相关 举报
汇编语言分支结构程序设计实验.docx_第1页
第1页 / 共15页
汇编语言分支结构程序设计实验.docx_第2页
第2页 / 共15页
汇编语言分支结构程序设计实验.docx_第3页
第3页 / 共15页
汇编语言分支结构程序设计实验.docx_第4页
第4页 / 共15页
汇编语言分支结构程序设计实验.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

汇编语言分支结构程序设计实验.docx

《汇编语言分支结构程序设计实验.docx》由会员分享,可在线阅读,更多相关《汇编语言分支结构程序设计实验.docx(15页珍藏版)》请在冰豆网上搜索。

汇编语言分支结构程序设计实验.docx

汇编语言分支结构程序设计实验

汇编语言--分支结构程序设计实验

汇编语言实验报告

实验6汇编语言

分支结构程序设计

学院:

计算机学院班级:

姓名:

梁建辉学号:

[1**********]7

2019年12月1日

1.实验目的:

(1)

(2)

(3)

(4)掌握汇编语言顺序结构设计方法熟悉常用汇编指令的用法学会用debug输入、运行小程序,并检查运行情况的方法学会在pc机上建立、汇编、连接、调试和运行80x86汇编语言程序的过程

2.实验内容:

(1)调试程序1:

将存储单元DAT+1中的两个压缩的bcd码拆成2个非压缩的

不承担码(高位bcd码放在DAT+1单元,地位bcd码放在DAT+2单元)。

程序如下:

DATASEGMENT

DATDB0A5H,2DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,DAT

MOVBL,AL

MOVCL,4

SHLBL,CL

MOVDAT+1,BL

ANDAL,0FH

MOVDAT+2,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

上机运行该程序并检查运行结果是否正确。

3.实验运行结果:

(1)

1401:

0000B80014MOV

1401:

00038ED8MOVDS,AX

1401:

0005A00000MOVAL,[0000]

1401:

00088AD8MOVBL,AL

1401:

000AB104MOVCL,04

1401:

000CD2E3SHLBL,CL

1401:

000E881E0100MOV[0001],BL

1401:

0012240FANDAL,0F

1401:

0014A20200MOV[0002],AL

1401:

0017B44CMOVAH,4C

1401:

0019CD21INT21

1401:

001BFE8946F6DECBYTEPTR[BX+DI+F646]

1401:

001FEB06JMP0027

段首地址为:

1400

运行前的结果:

-d1400:

0,F

1400:

0000

................

运行后的结果:

-g

Programterminatednormally

-d1400:

0,f

1400:

0000

.P..............

单步运行结果:

BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000DS=13F0ES=13F0SS=1400CS=1401IP=0003NVUPEIPLNZNAPONC1401:

00038ED8MOVDS,AX

-t

AX=1400BX=0000CX=002BDX=0000SP=0000BP=0000

SI=0000DI=0000DS=1400ES=13F0SS=1400CS=1401NVUPEIPLNZNAPONC

MOVAL,[0000]

DS:

0000=A5-t

BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1401NVUPEIPLNZNAPONC

MOVBL,AL

-t

AX=14A5CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1401NVUPEIPLNZNAPONC

MOVCL,04

-t

AX=14A5BX=00A5SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1401NVUPEIPLNZNAPONC

SHLBL,CL

-

AX=14A5CX=0004DX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1401

NVUPEIPLNZNAPENC

MOV[0001],BL

DS:

0001=50-t

BX=0050CX=0004DX=0000SP=0000BP=0000SI=0000DI=0000DS=1400ES=13F0SS=1400CS=1401

NVUPEIPLNZNAPENC1401:

0012240FANDAL,0F

-t

BX=0050CX=0004DX=0000SP=0000BP=0000SI=0000DI=0000DS=1400ES=13F0SS=1400CS=1401NVUPEIPLNZNAPENC

MOV[0002],AL

DS:

0002=05-t

AX=1405BX=0050CX=0004DX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1401NVUPEIPLNZNAPENCMOVAH,4C

-

AX=4C05BX=0050CX=0004DX=0000SP=0000BP=0000SI=0000DI=0000

SS=1400CS=1401NVUPEIPLNZNAPENCINT21

程序2:

DATA

XYSEGMENTDB20HDW?

ENDS

SEGMENT

MOVAX,DATA

;把X的值转移到AL;清零AH;定义X为字类型并赋值20H;定义Y为字节类型DATACODE

START:

ASSUMECS:

CODE,DS:

DATAMOVMOVDS,AXAL,XXORAH,AHSHLAX,1MOVMOV;将目的操作数向左移动1位;移位大于1,需用CL;将目的操作数向左移动2位;把AX与BX中的值相加;返回DOS状态下BX,AXCL,2SHLAX,CLADDAX,BXMOVMOVY,AXAH,4CHINT21HENDSENDSTARTCODE

运行结果:

1401:

0000B80014MOVAX,1400

1401:

00038ED8MOVDS,AX

1401:

0005A00000MOVAL,[0000]

1401:

000832E4XORAH,AH

1401:

000AD1E0SHLAX,1

1401:

000C8BD8MOVBX,AX

1401:

000EB102MOVCL,02

1401:

0010D3E0SHLAX,CL

1401:

001203C3ADDAX,BX

1401:

0014A30100MOV[0001],AX

1401:

0017B44CMOVAH,4C

1401:

0019CD21INT21

1401:

001BFE8946F6DECBYTEPTR[BX+DI+F646]

1401:

001FEB06JMP0027

-

首地址:

1400

运行前结果:

-d1400:

0,f

1400:

0000

...............

-t

运行后结果:

Programterminatednormally

-d1400:

0,f

1400:

0000

@..............

单步调试:

-t

AX=-t

AX=-t

AX=1400BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=13EBES=13EBSS=1400CS=13FCIP=0003NVUPEIPLNZNAPONC

13FC:

00038ED8MOVDS,AX

-t

AX=1400BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13EBSS=1400

CS=13FCNVUPEIPLNZNAPONC

MOVAL,[0000]DS:

0000=20

BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13EBSS=1400CS=13FCNVUPEIPLNZNAPONC

XORAH,AH

-t

BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13EBSS=1400CS=13FCNVUPEIPLZRNAPENC

SHLAX,1

-g

BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=13EBES=13EBSS=1400CS=13FCIP=0003NVUPEIPLNZNAPONC

13FC:

00038ED8MOVDS,AX

-t

AX=1400BX=0000CX=002BDX=0000SP=0000BP=0000

SI=0000DI=0000

DS=1400ES=13EBSS=1400CS=13FCNVUPEIPLNZNAPONC

MOVAL,[0000]

DS:

0000=20

-t

BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13EBSS=1400CS=13FCNVUPEIPLNZNAPONC

XORAH,AH

-t

BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13EBSS=1400CS=13FCNVUPEIPLZRNAPENC

SHLAX,1

-g

BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=13EBES=13EBSS=1400CS=13FCIP=0003NVUPEIPLNZNAPONC

13FC:

00038ED8

MOVDS,AX

-t

AX=13FBBX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13EBSS=13FBCS=13FCNVUPEIPLNZNAPONC

MOVAL,[0000]

DS:

0000=20

-t

BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13EBSS=1400CS=13FCNVUPEIPLNZNAPONC

XORAH,AH

-t

BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13EBSS=1400CS=13FCNVUPEIPLZRNAPENC

SHLAX,1

-g

程序3:

DATASEGMENT

ORG1000H

BINDB?

HEXDB6Bh

ORG1030H

DB00H,01H,02H,03H,04H,05H,06H,07H,08H,09H

ORG1040H

DB0AH,0BH,0CH,0DH,0EH,0FH

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,HEX

MOVBX,OFFSETBIN

SUBAH,AH

ADDBX,AX

MOVDL,[BX]

MOVCL,4

SHLDL,CL

MOVAL,HEX+1

MOVBX,OFFSETBIN

XORAH,AH

ADDBX,AX

MOVAx,BX

ORAl,DL

MOVBIN,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行结果:

1505:

0000B80014MOV

1505:

00038ED8MOVDS,AX

1505:

0005A00110MOVAL,[1001]

1505:

0008BB0010MOVBX,1000

1505:

000B2AE4SUBAH,AH

1505:

000D03D8ADDBX,AX

1505:

000F8A17MOVDL,[BX]

1505:

0011B104MOVCL,04

1505:

0013D2E2SHLDL,CL

1505:

0015A00210MOVAL,[1002]

1505:

0018BB0010MOVBX,1000

1505:

001B32E4XORAH,AH

1505:

001D03D8ADDBX,AX

1505:

001F8BC3MOVAX,BX

首地址:

1400

-运行前结果:

-d1400:

0,f

1400:

0000

................

.....

-

运行后结果:

-d1400:

0,f

1400:

0000

...........

单步调试:

BX=0000CX=107ADX=0000SP=0000BP=0000SI=0000DI=0000

DS=13F0ES=13F0SS=1400CS=1505IP=0003NVUPEIPLNZNAPONC

1505:

00038ED8MOVDS,AX

-T

AX=1400BX=0000CX=107ADX=0000SP=0000BP=0000

SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1505NVUPEIPLNZNAPONC

MOVAL,[1001]

DS:

1001=6B

-T

BX=0000CX=107ADX=0000SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13F0SS=1400NVUPEIPLNZNAPONC

MOVBX,1000

-T

AX=146B

CX=107ADX=0000SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13F0SS=1400CS=1505NVUPEIPLNZNAPONC

SUBAH,AH

-T

BX=1000CX=107ADX=0000SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13F0SS=1400CS=1505NVUPEIPLZRNAPENC

ADDBX,AX

-

AX=006BCX=107ADX=0000SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13F0SS=1400CS=1505NVUPEIPLNZNAPONC

MOVDL,[BX]

DS:

106B=32

-t

AX=006BBX=106BCX=107ASP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13F0SS=1400CS=1505NVUPEIPLNZNAPONC

MOV

CL,04

-t

AX=006BBX=106BCX=1004DX=0032SP=0000BP=0000

SI=0000DI=0000

DS=1400ES=13F0SS=1400NVUPEIPLNZNAPONC

SHL

DL,CL

-t

AX=006BBX=106BCX=1004SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1505

NVUPEIPLNZNAPOCY

MOVAL,[1002]

DS:

1002=00

-t

BX=106BCX=1004DX=0020SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13F0SS=1400CS=1505

NVUPEIPLNZNAPOCY

MOV

BX,1000

-

AX=0000CX=1004DX=0020SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13F0SS=1400CS=1505NVUPEIPLNZNAPOCY

XOR

AH,AH

-t

AX=0000BX=1000CX=1004DX=0020SP=0000BP=0000

SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1505NVUPEIPLZRNAPENC

ADDBX,AX

-t

AX=0000BX=1000CX=1004DX=0020SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1505

NVUPEIPLNZNAPENC

MOVAX,BX

-t

BX=1000CX=1004DX=0020SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13F0SS=1400NVUPEIPLNZNAPENC

ORAL,DL

-t

BX=1000CX=1004DX=0020SP=0000BP=0000SI=0000

DI=0000

DS=1400ES=13F0SS=1400CS=1505NVUPEIPLNZNAPONC

MOV[1000],AL

DS:

1000=20

-

-t

AX=1020BX=1000CX=1004DX=0020SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1505NVUPEIPLNZNAPONC

MOVAH,4C

-

心得体会:

写程序时,对于有些特定的指令不太熟,有时还得借助于课本,不能脱离课本编程。

应该加大力度记一些指令,及多看看一些好的程序代码,多做一些题目,来提高自身的编程能力。

编程时得多注意一些中英文的符号不能换乱,学会用全部转换的功能然后转换需要转换的符号。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1