会汇编的帮忙啊。在线等。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了会汇编的帮忙啊。在线等。相关的知识,希望对你有一定的参考价值。

实验八 子程序设计
一.实验目的
1、掌握程序设计方法,合理划分层次
2、掌握子程序的调用与返回的方法
3、了解子程序的嵌套与递归
二.实验内容与要求
编制一程序,要求键入一个班的学生成绩,并存放于50字的ERADE数组中,然后根据ERADE中的成绩,把学生名次填入50字的RANK数组中,再按学号顺序把名次从终端上显示出来。
提示:
① 程序MAIN
功能:根据输入的学生成绩,计算并显示出学生名次。
② 子程序INPUT
功能:接收一个班级学生的成绩,各成绩之间用空格隔开。
③ 子程序RANKP
功能:计算一个班级学生的名次。
④ 子程序OUTPUT
功能:输出(显示)一个班级的学生名次
⑤ 子程序DECIBIN
功能:十进制转换二进制,存入BX
⑥ 子程序BINDEC
功能:十进制转换二进制,并在屏幕上显示。
⑦ 子程序DEC_DIV
功能:BX的内容除以CX的内容,并在屏幕上显示一位商。
三.程序框图:

图8.1 程序流程图
四.步骤
1、自编主程序与子程序。
2、输入本班级某门基础课成绩。

五.思考题
1、写出4位BCD码转二进制数的算法。
2、写出AX中进二制数转BCD码的算法。
3、将上述子程序结构改为模块化程序设计。

六.实验报告:
1、程序说明。说明程序的功能、结构。
2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
3、写出源程序清单和执行结果。
4、回答思考题。

实验九 综合程序设计
一.实验目的:
1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。
2、掌握综合程序的编制及调试方法。
二.实验内容:
设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。试编制一个子程序,统计低于60分,60~69分,70~79分,80~89分,90~99分和100分的人数,并输出显示统计结果。
三.编程提示:
1、成绩分等部分采用分支结构,统计所有成绩则用循环结构完成,显示统计结果采用DOS功能调用。
2、统计学生成绩和显示统计结果两部分内容用子程序结构来完成。
四.实验报告:
1、程序说明。说明程序的功能、结构。
2、调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
3、画出程序框图。
4、写出源程序清单和执行结果。
5、体会和意见。
急啊急啊

实验八:
本程序经masm5.0调试通过运行....
DATA SEGMENT
GRADE DW 50 DUP(?)
RANK DW 50 DUP(?)
COUNT DW ?
MESS1 DB 'Please enter students grade:$'
MESS2 DB 0DH,0AH,'You input non-digits...',0DH,0AH,0DH,0AH,'$'
MESS3 DB 'Rank:$'
DATA ENDS
PROGNAM SEGMENT
MAIN PROC FAR
ASSUME CS:PROGNAM,DS:DATA ;,ss:stack_seg
START:

PUSH DS
SUB AX,AX
PUSH AX

MOV AX,DATA
MOV DS,AX
CALL INPUT
;CMP SI,0
;JE EXIT
CALL RANKP
CALL OUTPUT
EXIT: RET
MAIN ENDP
;入口:无
;出口:COUNT=存入输入成绩个数,GRADE=存储成绩表
;功能 : GRADE首地址处开始存储每科成绩,数据类型为字 ,COUNT为输入成绩个数,提示输入与出错信息
INPUT PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI

LEA DX,MESS1
MOV AH,09
INT 21H
CALL CRLF
MOV SI,0
MOV COUNT,0
BEGIN:
CALL DECIBIN
INC COUNT
CMP DL,' '
JE STORE
CMP DL,0DH
JE EXIT2
JMP ERROR
STORE:
MOV GRADE[SI],BX
ADD SI,2
JMP BEGIN
ERROR:
LEA DX,MESS2
MOV AH,09
INT 21H
CALL INPUT

EXIT2:
MOV GRADE[SI],BX
CALL CRLF ;调用CRLF,回车换行

POP SI
POP DX
POP CX
POP BX
POP AX
RET
INPUT ENDP
;功能:计算一个班级学生的名次
RANKP PROC NEAR

MOV DI,COUNT ;grade数组元素个数,外循环次数
MOV BX,0 ;grade数组元素下标
L1:
MOV AX,GRADE[BX] ;取grade数组内一个元素
MOV WORD PTR RANK[BX],1 ;将该学生名次初始化1
MOV CX,COUNT ;内循环次数

MOV SI,0
NEXT: PUSH DI

CMP AX,GRADE[SI]
JGE NO_COUNT

MOV DI,-2
IF_SAME: ADD DI,2 ;成绩相同不重复计数
MOV DX,GRADE[DI]

CMP DX,GRADE[SI]

JNZ IF_SAME

CMP DI,SI
JNZ NO_COUNT

INC WORD PTR RANK[BX]

NO_COUNT:
POP DI
ADD SI,2
LOOP NEXT

ADD BX,2 ;执行grade数组下一元素
DEC DI ;外循环计数减一
JNE L1
RET
RANKP ENDP

; 功能:输出(显示)一个班级的学生名次

OUTPUT PROC NEAR
LEA DX,MESS3
MOV AH,09
INT 21H
CALL CRLF
MOV SI,0
MOV DI,COUNT
NEXT4:
MOV BX,RANK[SI]
CALL BINIDEC
MOV DL,' '
MOV AH,02
INT 21H
ADD SI,2
DEC DI
JNZ NEXT4
CALL CRLF
RET
OUTPUT ENDP
;入口:无
;出口:BX=存输入十进制转换二进制的结果,DL=十进制数最后一个字符,为非数字字符
;功能:输入十进制数,遇非数字字符结束输入,最大输入十进制数65535

DECIBIN PROC NEAR
PUSH AX
PUSH CX

MOV BX,0
NEWCHAR:
MOV AH,1
INT 21H
MOV DL,AL
SUB AL,30H
JB EXIT1
CMP AL,9
JA EXIT1
CBW
XCHG AX,BX
MOV CX,10
MUL CX
XCHG AX,BX
ADD BX,AX
JMP NEWCHAR

EXIT1: POP CX
POP AX
RET
DECIBIN ENDP

BINIDEC PROC NEAR

PUSH BX
PUSH CX
PUSH SI
PUSH DI

MOV CX,10
CALL DEC_DIV
MOV CX,1
CALL DEC_DIV
POP DI
POP SI
POP CX
POP BX
RET
BINIDEC ENDP
;功能:BX的内容除以CX的内容,并在屏幕上显示一位商
DEC_DIV PROC NEAR
MOV AX,BX
MOV DX,0
DIV CX
MOV BX,DX
MOV DL,AL
ADD DL,30H
MOV AH,02H
INT 21H
RET
DEC_DIV ENDP
;功能;回车换行
CRLF PROC NEAR
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
RET
CRLF ENDP

PROGNAM ENDS
END START
参考技术A 两个问题都较为复杂,程序代码都比较长,难以通过审核。

建议分两个题目分别提问,每题75分。
参考技术B 这么集中,一时......

Itest系统的初始密码多少啊 在线等 求告知

参考技术A 重新注册一个

以上是关于会汇编的帮忙啊。在线等。的主要内容,如果未能解决你的问题,请参考以下文章

用python进行socket编程老是报错error: [Errno 10061] 怎么回事啊??好心人帮帮忙啊!!在线等!谢了

Opencv 摄像头在捕获一帧图片时,保存的是黑屏,不知道问题,谁能帮忙改正一下啊,在线等!!!

跪球电脑高手帮忙了(在线等!!)

帮忙翻译 悬赏100在线等!!!!!!!!!!

用EXPDP如何设置自动备份了,请大家帮忙! 是用ORACLE R12. 第一次发贴,不是很会写,在线等... 那位大侠帮忙

关于abap中inner join 还有for all entries in 的问题~各位大神来帮帮忙啊~小女子在线等候!