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

上传人:b****1 文档编号:13747588 上传时间:2023-06-17 格式:DOCX 页数:15 大小:17.27KB
下载 相关 举报
汇编语言分支结构程序设计实验.docx_第1页
第1页 / 共15页
汇编语言分支结构程序设计实验.docx_第2页
第2页 / 共15页
汇编语言分支结构程序设计实验.docx_第3页
第3页 / 共15页
汇编语言分支结构程序设计实验.docx_第4页
第4页 / 共15页
汇编语言分支结构程序设计实验.docx_第5页
第5页 / 共15页
汇编语言分支结构程序设计实验.docx_第6页
第6页 / 共15页
汇编语言分支结构程序设计实验.docx_第7页
第7页 / 共15页
汇编语言分支结构程序设计实验.docx_第8页
第8页 / 共15页
汇编语言分支结构程序设计实验.docx_第9页
第9页 / 共15页
汇编语言分支结构程序设计实验.docx_第10页
第10页 / 共15页
汇编语言分支结构程序设计实验.docx_第11页
第11页 / 共15页
汇编语言分支结构程序设计实验.docx_第12页
第12页 / 共15页
汇编语言分支结构程序设计实验.docx_第13页
第13页 / 共15页
汇编语言分支结构程序设计实验.docx_第14页
第14页 / 共15页
汇编语言分支结构程序设计实验.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

汇编语言实验报告

实验6汇编语言

分支结构程序设计

 

学院:

计算机学院

班级:

计Y112班

姓名:

梁建辉

学号:

201100403067

 

2012年12月1日

1.实验目的:

(1)掌握汇编语言顺序结构设计方法

(2)熟悉常用汇编指令的用法

(3)学会用debug输入、运行小程序,并检查运行情况的方法

(4)学会在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:

0000B80014MOVAX,1400

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:

0000A500000000000000-0000000000000000................

运行后的结果:

-g

Programterminatednormally

-d1400:

0,f

1400:

0000A550050000000000-0000000000000000.P..............

单步运行结果:

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

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

1401:

00038ED8MOVDS,AX

-t

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

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

1401:

0005A00000MOVAL,[0000]DS:

0000=A5

-t

AX=14A5BX=0000CX=002BDX=0000SP=0000BP=0000SI=0000DI=0000

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

1401:

00088AD8MOVBL,AL

-t

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

DS=1400ES=13F0SS=1400CS=1401IP=000ANVUPEIPLNZNAPONC

1401:

000AB104MOVCL,04

-t

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

DS=1400ES=13F0SS=1400CS=1401IP=000CNVUPEIPLNZNAPONC

1401:

000CD2E3SHLBL,CL

-

AX=14A5BX=0050CX=0004DX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1401IP=000ENVUPEIPLNZNAPENC

1401:

000E881E0100MOV[0001],BLDS:

0001=50

-t

AX=14A5BX=0050CX=0004DX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1401IP=0012NVUPEIPLNZNAPENC

1401:

0012240FANDAL,0F

-t

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

DS=1400ES=13F0SS=1400CS=1401IP=0014NVUPEIPLNZNAPENC

1401:

0014A20200MOV[0002],ALDS:

0002=05

-t

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

DS=1400ES=13F0SS=1400CS=1401IP=0017NVUPEIPLNZNAPENC

1401:

0017B44CMOVAH,4C

-

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

DS=1400ES=13F0SS=1400CS=1401IP=0019NVUPEIPLNZNAPENC

1401:

0019CD21INT21

程序2:

DATASEGMENT

XDB20H;定义X为字类型并赋值20H

YDW?

;定义Y为字节类型

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,X;把X的值转移到AL

XORAH,AH;清零AH

SHLAX,1;将目的操作数向左移动1位

MOVBX,AX

MOVCL,2;移位大于1,需用CL

SHLAX,CL;将目的操作数向左移动2位

ADDAX,BX;把AX与BX中的值相加

MOVY,AX

MOVAH,4CH;返回DOS状态下

INT21H

CODEENDS

ENDSTART

运行结果:

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:

00002000000000000000-0000000000000000...............

-t

 

运行后结果:

Programterminatednormally

-d1400:

0,f

1400:

00002040010000000000-0000000000000000@..............

单步调试:

-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=1400CS=13FCIP=0005NVUPEIPLNZNAPONC

13FC:

0005A00000MOVAL,[0000]DS:

0000=20

-t

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

DS=1400ES=13EBSS=1400CS=13FCIP=0008NVUPEIPLNZNAPONC

13FC:

000832E4XORAH,AH

-t

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

DS=1400ES=13EBSS=1400CS=13FCIP=000ANVUPEIPLZRNAPENC

13FC:

000AD1E0SHLAX,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=0000SI=0000DI=0000

DS=1400ES=13EBSS=1400CS=13FCIP=0005NVUPEIPLNZNAPONC

13FC:

0005A00000MOVAL,[0000]DS:

0000=20

-t

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

DS=1400ES=13EBSS=1400CS=13FCIP=0008NVUPEIPLNZNAPONC

13FC:

000832E4XORAH,AH

-t

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

DS=1400ES=13EBSS=1400CS=13FCIP=000ANVUPEIPLZRNAPENC

13FC:

000AD1E0SHLAX,1

-g

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

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

13FC:

00038ED8MOVDS,AX

-t

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

DS=1400ES=13EBSS=13FBCS=13FCIP=0005NVUPEIPLNZNAPONC

13FC:

0005A00000MOVAL,[0000]DS:

0000=20

-t

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

DS=1400ES=13EBSS=1400CS=13FCIP=0008NVUPEIPLNZNAPONC

13FC:

000832E4XORAH,AH

-t

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

DS=1400ES=13EBSS=1400CS=13FCIP=000ANVUPEIPLZRNAPENC

13FC:

000AD1E0SHLAX,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:

0000B80014MOVAX,1400

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:

00000000000000000000-0000000000000000................

.....

-

运行后结果:

-d1400:

0,f

1400:

00000000000000000000-0000000000000000...........

 

单步调试:

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

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

1505:

00038ED8MOVDS,AX

-T

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

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

1505:

0005A00110MOVAL,[1001]DS:

1001=6B

-T

AX=146BBX=0000CX=107ADX=0000SP=0000BP=0000SI=0000DI=0000

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

1505:

0008BB0010MOVBX,1000

-T

AX=146BBX=1000CX=107ADX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1505IP=000BNVUPEIPLNZNAPONC

1505:

000B2AE4SUBAH,AH

-T

AX=006BBX=1000CX=107ADX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1505IP=000DNVUPEIPLZRNAPENC

1505:

000D03D8ADDBX,AX

-

AX=006BBX=106BCX=107ADX=0000SP=0000BP=0000SI=0000DI=0000

DS=1400ES=13F0SS=1400CS=1505IP=000FNVUPEIPLNZNAPONC

1505:

000F8A17MOVDL,[BX]DS:

106B=32

-t

AX=006BBX=106BCX=107ADX=0032SP=0000BP=0000SI=0000DI=0000

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

1505:

0011B104MOVCL,04

-t

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

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

1505:

0013D2E2SHLDL,CL

-t

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

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

1505:

0015A00210MOVAL,[1002]DS:

1002=00

-t

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

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

1505:

0018BB0010MOVBX,1000

-

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

DS=1400ES=13F0SS=1400CS=1505IP=001BNVUPEIPLNZNAPOCY

1505:

001B32E4XORAH,AH

-t

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

DS=1400ES=13F0SS=1400CS=1505IP=001DNVUPEIPLZRNAPENC

1505:

001D03D8ADDBX,AX

-t

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

DS=1400ES=13F0SS=1400CS=1505IP=001FNVUPEIPLNZNAPENC

1505:

001F8BC3MOVAX,BX

-t

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

DS=1400ES=13F0SS=1400CS=1505IP=0021NVUPEIPLNZNAPENC

1505:

00210AC2ORAL,DL

-t

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

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

1505:

0023A20010MOV[1000],ALDS:

1000=20

-

-t

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

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

1505:

0026B44CMOVAH,4C

-

心得体会:

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

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

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

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2