华南理工大学物流工程汇编语言实验报告Word文档格式.docx

上传人:b****5 文档编号:21736930 上传时间:2023-02-01 格式:DOCX 页数:15 大小:17.81KB
下载 相关 举报
华南理工大学物流工程汇编语言实验报告Word文档格式.docx_第1页
第1页 / 共15页
华南理工大学物流工程汇编语言实验报告Word文档格式.docx_第2页
第2页 / 共15页
华南理工大学物流工程汇编语言实验报告Word文档格式.docx_第3页
第3页 / 共15页
华南理工大学物流工程汇编语言实验报告Word文档格式.docx_第4页
第4页 / 共15页
华南理工大学物流工程汇编语言实验报告Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

华南理工大学物流工程汇编语言实验报告Word文档格式.docx

《华南理工大学物流工程汇编语言实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《华南理工大学物流工程汇编语言实验报告Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

华南理工大学物流工程汇编语言实验报告Word文档格式.docx

'

'

$'

MSG2DB'

pleaseinputachar:

LFCRDB13,10,'

STRING1DB255,?

255DUP(?

CHAR1DB?

COUNTDB0

POSDB0

BEGIN:

PUSHCS

POPDS

POPES

LEADX,MSG1

MOVAH,9

INT21H

LEADX,STRING1

MOVAH,10

LEADX,LFCR

LEADX,MSG2

MOVAH,1

MOVCHAR1,AL

INT21H

MOVCL,STRING1+1

MOVCH,0

LEASI,STRING1+2

MOVBYTEPTRCOUNT,0

MOVBYTEPTRPOS,0

MOVBL,0

CLD

A:

LODSB

INCBL

CMPAL,CHAR1

JNEB

INCBYTEPTRCOUNT

CMPBYTEPTRCOUNT,1

MOVPOS,BL

B:

LOOPA

MOVDL,COUNT

ADDDL,30H

MOVAH,2

MOVDL,'

MOVDL,POS

MOVAH,4CH

CODESENDS

ENDSTART

小结

遍历数组,将数组元素和查找的字符进行比较,记录第一次出现时的下标。

记录遍历完数组后,查找的赐福出现的次数。

实验题目2:

循环接收用户按键输入,将用户输入的大字母原样输出,将用户输入的小写字母转换为大写字母再输出,用户若输入数字0则退出程序,其它情况输出“error!

”。

熟悉汇编语言的输入输出,以及ASCLL码的使用

输入A-Z,相应输出A-Z

输入a-z,相应输出A-Z

输入其他,返回error!

输入0,退出程序。

DATASSEGMENT

STRINGDB'

ERROR!

XDB?

;

DATASENDS

STACKSSEGMENT

DW128DUP(?

);

STACKSENDS

CODES,DS:

DATAS,SS:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

AGAIN:

MOVAH,01H

CMPAL,'

0'

JENEXT

A'

JBERROR;

小于A的出错

Z'

JBEPRINT1;

在A,Z之间的输出PRINT1

a'

在Z(41HH)和a(61H)之间的出错

z'

JBEPRINT2;

在a,z之间的输出PRINT2

JMPERROR

PRINT1:

MOVDL,AL

MOVAH,02H

JMPAGAIN;

循环输入,AGAIN

PRINT2:

SUBDL,20H

ERROR:

MOVDX,OFFSETSTRING

MOVAH,09H

JMPAGAIN;

NEXT:

MOVAH,4CH

输入字符,判断字符的ASCII码,从低向高,比较字符。

小于A,A-Z,Z-a,a-z,大于z。

分别输出对应的字符。

实验题目3:

从键盘接收用户输入的一个正整数(0-32767之间),输出该数字的所有因子。

熟悉汇编语言中各种命令的使用。

用户从键盘输入一个0-32767之间的正整数,程序输出该数字的所有因子。

stacksegmentparastack

dw40hdup(?

stackends

datasegment

stringdb'

请输入一个整数,按回车键结束'

xdw0000h

ydb01h

zdb?

pdw0000h

rdw000ah

qdw0000h

dataends

codesegment

assumeds:

data,cs:

code

start:

movq,sp

movdx,offsetstring

movah,09h

int21h

newchar:

movah,1

cmpal,0dh

jzlist1

movah,00h

pushax

jmpnewchar

list1:

popax

movbl,y

movz,bl

subal,30h

quan:

mulr

subz,01h

cmpz,00h

jgquan

divr

addx,ax

addy,01h

cmpsp,q

jllist1

list2:

movax,x

cmpp,ax

jgexit

movdx,0000h

movp,0001h

divp

cmpdx,0000h

jglist5

movax,p

list3:

movdx,0000h

pushdx

cmpax0000h

jglist3

list4:

addal,30h

movdl,al

movah,02h

jllist4

moval,20h

list5:

addp,0001h

jmplist2

exit:

movax,4c00h

codeends

endstart

实验题目4:

编写主程序,调用input接收用户输入数据,再调用binout、decout、hexout将数据以二、十、十六进制输出显示。

熟悉汇编语言中函数的编写,函数的调用。

以及堆栈的使用。

编写三个函数:

1、函数input:

接收用户一个正整数,将数据保存到AX

2、函数binout:

将AX中的数据以二进制在屏幕上显示出来

3、函数decout:

将AX中的数据以十进制在屏幕上显示出来

4、函数hexout:

将AX中的数据以十六进制在屏幕上显示出来

编写主程序,调用input接收用户输入数据,再调用binout、decout、hexout将数据以二、十、十六进制输出显示。

tendw10

bufdb20dup(?

dw50dup(?

assumecs:

code,ds:

data

movax,data

movds,ax

callinputint

movdl,0dh

movdl,0ah

callbinout

callprintint

callhexout

movah,4ch

binoutproc

pushcx

pushbx

pushax

movcx,16

a3:

shlbx,1

jca1

movdl,'

jmpa2

a1:

movdl,'

1'

a2:

movah,02h

loopa3

popax

popdx

popbx

popcx

ret

binoutendp

inputintprocnear;

pushf

movbx,0

movcx,0

ll2:

movah,01h

cmpal,'

jllL1

9'

jalL1

subal,'

movcl,al

movax,bx

multen

addax,cx

movbx,ax

jmpll2

ll1:

popf

inputintendp

printintprocnear;

pushsi

movsi,0

movax,bx

l2:

cwd

divten

movbuf[si],dl

incsi

cmpax,0

jeL1

jmpl2

l1:

movcx,si

l3:

decsi

movdl,buf[si]

adddl,30h

movah,2

loopl3

popsi

printintendp

hexoutproc

MOVBX,16;

16进制,要除16

MOVCX,4;

求4位16进制数.

ABC:

CWD;

将AX扩展到DX

DIVBX

PUSHDX;

保存余数到堆栈.

LOOPABC

显示4位.

ASD:

POPDX

CMPDL,10

JBA48

ADDDL,7

A48:

ADDDL,48

MOVAH,2

INT21H;

输出.

LOOPASD

hexoutendp

codeends

编写三个子程序,除以进制,取余输出。

在主程序中使用call调用函数。

指导教师评语及成绩

评语:

 

成绩:

指导教师签名:

批阅日期:

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

当前位置:首页 > 医药卫生 > 基础医学

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

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