计算机硬件基础实验报告书Word格式文档下载.docx

上传人:b****6 文档编号:20383320 上传时间:2023-01-22 格式:DOCX 页数:24 大小:231.47KB
下载 相关 举报
计算机硬件基础实验报告书Word格式文档下载.docx_第1页
第1页 / 共24页
计算机硬件基础实验报告书Word格式文档下载.docx_第2页
第2页 / 共24页
计算机硬件基础实验报告书Word格式文档下载.docx_第3页
第3页 / 共24页
计算机硬件基础实验报告书Word格式文档下载.docx_第4页
第4页 / 共24页
计算机硬件基础实验报告书Word格式文档下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

计算机硬件基础实验报告书Word格式文档下载.docx

《计算机硬件基础实验报告书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机硬件基础实验报告书Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。

计算机硬件基础实验报告书Word格式文档下载.docx

(3)R查看寄存器内值

(4)T单步执行A编辑命令

(5)G命令

(6)U反编汇编命令

(7)W写入文件

(8)验证加减乘除

(9)验证带进为的加法、带错位的减法

(4)完成时间

2012年5月21日

实验二分支程序实验

1.实验目的:

掌握分支程序的设计方法

掌握利用DEBUG修改参数、检查结果的方法。

掌握汇编语言源程序的编辑、汇编、连接及调试过程。

2. 

实验内容

(1)编写一个程序,显示AL寄存器中的两位十六进制数

编写一个程序,判别键盘上输入的字符;

若是1-9字符,则显示之;

若为A-Z或a-z字符,均显示“c”;

若是回车字符<

CR>

(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。

(1)显示AL寄存器中的两位十六进制数

运行过程中截图:

实验源代码:

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAL,3AH;

假定为3AH

MOVBL,AL

MOVDL,AL

MOVCL,4

SHRDL,CL

CMPDL,9

JBENEXT1

ADDDL,7

NEXT1:

ADDDL,30H

MOVAH,2

INT21H

MOVDL,BL

ANDDL,0FH

JBENEXT2

NEXT2:

MOVAH,4CH

CODEENDS

ENDSTART

(2)判别键盘上输入的字符

程序源代码:

MOVAH,1

INT21H;

等待键入字符,送给AL

CMPAL,0DH;

判断是否是回车符

JZDONE;

如果是回车符,则转到DONE退出程序

CMPAL,'

0'

JBNEXT

9'

JACHARUP

JMPSTART

CHARUP:

CMPAL,41H

JBNEXT

CMPAL,5AH

JACHRDN

DISPC:

MOVDL,'

C'

MOVAH,2

NEXT:

CHRDN:

CMPAL,61H

CMPAL,7AH

JANEXT

MOVDL,'

JMPNEXT

DONE:

ENDSTART

实验三循环程序实验

掌握循环程序的设计方法

进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。

学会针对不同的问题,选用不同的组织循环的方法。

编写一个程序,显示AL寄存器中的两位十六进制数

MOVAL,3BH

INT21H

CMPAL,0DH

JZDONE

4.实验时间

2012年5月21日

实验四子程序实验

(一)

1. 

实验目的

掌握主程序与子程序之间的调用关系及调用方法。

掌握子程序调用过程中近程调用与远程调用的区别。

掌握通过堆栈转送参数的方法。

2. 

实验内容

(1)将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCI码,在屏幕上显示出来。

要求码型转换通过子程序HEXAC实现,在转换过程中,通过子程序DISP实现显示.

编写一个主程序,从键盘接收若干个字符,然后用远调用的方法,调用子程序统计字符串中字符’b’的个数.子程序的参数是字符串的首地址TABLE,字符串长度N及字符”b”.子程序返回字符"b”的个数.参数传送采用堆栈实现.主程序在子程序返回后,显示字符”b”及其个数(设为一位十六进制数).

3. 

实验结果

(1)二进制转换成两位十六进制数

运行过程中的截图:

DATASEGMENT

BUFDB0ABH,0CDH,01H,02H,03H

DB3AH,4BH,5CH,6FH

DATAENDS

CODE,DS:

DATA

MOVAX,DATA

MOVDS,AX

MOVCX,10

LEABX,BUF

AGAIN:

MOVAL,[BX]

CALLHEXASC

INCBX

LOOPAGAIN

HEXASCPROCNEAR

PUSHCX

POPCX

CALLDISP

RET

HEXASCENDP

DISPPROC

JBENEXT

DISPENDP

CODEENDS

(2)统计‘b’的个数并显示‘b’及其个数

CHARDB'

b'

BUFDB50H,?

50HDUP(?

CRLFDB0DH,0AH,'

$'

DATAENDS

MCODESEGMENT

MCODE,DS:

LEADX,BUF

MOVAH,0AH

LEADX,CRLF

MOVAH,9

LEASI,BUF

MOVCL,[SI+1]

MOVCH,0;

CX中为字符串长度

INCSI

INCSI;

SI指向串首址TABLE

MOVAL,CHAR

MOVAH,0;

AX中为待查字符

PUSHSI

PUSHAX;

参数送堆栈

CALLFARPTRCHECK

MOVDL,CHAR

POPAX;

统计个数在AL中,个数不能超过一位16进制数

ANDDL,0FH

INT21H;

显示统计个数

MCODEENDS

SCODESEGMENT

SCODE

CHECKPROCFAR

PUSHBP

MOVBP,SP

MOVSI,[BP+10]

MOVCX,[BP+8]

MOVAX,[BP+6]

XORAH,AH

CMPAL,[SI]

JNENEXT1

INCAH

INCSI

MOVAL,AH

MOV[BP+10],AX

POPBP

RET4

CHECKENDP

SCODEENDS

子程序实验

(二)

了解多模块程序设计方法

学会使用PUNLEC和EXTRN伪指令解决模块间的符号(如变量,标号等)通信问题

编写一个字程序,将主程序设定的内存中字符串的小写字母转换成大写字母并显示出来,主程序用另一个模块编写

编写一个子程序,将主程序指定的字符所在的地址返回给主程序,字符串与主程序在同一个模块

3. 

实验结果

(1)字符串中小写字母转换成大写字母

运行中的结果:

主程序5-1.asm代码如下:

EXTRNDNTOUP:

FAR

PUBLICSTRING1,STRING2

STRING1DB'

Iloveus,yesornot?

YES!

'

'

STRING2DB80DUP(?

MOVDS,AX

CALLFARPTRDNTOUP

子程序DNTOUP.asm代码如下:

PUBLICDNTOUP

EXTRNSTRING1:

BYTE,STRING2:

BYTE

DNTOUPPROCFAR

MOVBX,0

CYCLE:

MOVAL,STRING1[BX]

CMPAL,24H;

是否是STRING1结尾

JZDONE;

是"

$"

转DONE

CMPAL,61H;

是小写字母吗?

JBNEXT;

不是转NEXT

SUBAL,20H;

转为大写字母

MOVSTRING2[BX],AL

JMPCYCLE

MOVAL,'

MOVSTRING2[BX],AL;

补一个$

MOVDL,0DH

MOVAH,2

MOVDL,0AH

显示回车换行

LEADX,STRING1

显示源串内容

回车换行

MOVDX,OFFSETSTRING2

显示转换后的大写串

DNTOUPENDP

ENDDNTOUP

(2)将主程序指定的字符所在的地址返回给主程序

运行结果截图:

主程序5-2.asm代码如下:

EXTRNFINDC:

PUBLICSTRN

STRNDB'

LIANTINGISASTUDENT$'

ADDRDW?

CALLFARPTRFINDC

MOVADDR,DI

ENDSTART

子程序FINDC.asm代码如下:

PUBLICFINDC

EXTRNSTRN:

FINDCPROCFAR

LEADI,STRN

CMPBYTEPTR[DI],'

JZDONE

CMPAL,[DI]

JNZNEXT

DONE1:

INCDI

JMPAGAIN

MOVDI,0FFFFH;

找不到返回0FFFFH

JMPDONE1

FINDCENDP

2012年5月22日

字符处理程序实验

1.实验目的

(1)熟悉串操作指令的功能与应用

(2)掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序。

2.实验内容

(1)字符串统计。

自STRN开始的存储区中,有一个字符串,统计其中含有小写字母的个数,将统计结果以两位十进制数显示在屏幕上。

(2)在给定的字符串中,删除重复的字符,其余的字符向前递补。

(1)字符串统计

STRNDB80DUP(?

DATA,ES:

MOVAX,DATA

LEADI,STRN

MOVCL,0

MOVAH,1

CMPAL,0DH;

判断是否是回车

MOV[DI],AL

INCCL

LEASI,STRN

MOVCH,0

MOVBL,0

CLD;

告诉SI向前移动1

LODSB

判断是否和a相同

JBNEXT;

小于a转向NEXT

CMPAL,7AH;

判断是否和z相同

JANEXT;

大于z转向NEXT

INCBL;

BL自动加1

LOOPCYCLE

MOVAL,BL

MOVAH,0

MOVCL,10

DIVCL

ADDAX,3030H

PUSHAX

POPAX

XCHGAH,AL

MOVAH,2;

显示

MOVAH,4CH;

退出程序

ENDSTART

(2)在给定的字符串中,删除重复的字符,其余的字符向前递补

LENDB?

MOVES,AX

MOVCL,0

CMPAL,0DH

MOV[SI],AL

MOVLEN,CL

DECSI

REPET:

POPDX

DECCX

JENEXT1

MOVAL,[SI]

CMPAL,0

COMP:

JNEGOON

MOVBYTEPTR[SI],0

GOON:

LOOPCOMP

POPSI

DECDX

MOVCX,DX

JNZREPET

MOVCL,LEN

MOV[SI+LEN-1],'

JZDONE1

CALLDELE

INCCX

LEADX,STRN

DELEPROC

CLD

MOVDI,SI

REPMOVSB

DELEENDP

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

当前位置:首页 > 医药卫生 > 中医中药

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

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