华中科技大学汇编实验报告5


    
    课 程 实 验 报 告
    课程名称: 汇编语言程序设计实验
    实验名称: 实验五 汇编语言C语言混合编程
    实验时间: 201641914:0017:30 实验点:
    指导教师: 专业班级:计算机科学技术班
    学 号: 姓 名:
    组学生: 报告日期: 2016年 4月 23日
    原创性声明
      郑重声明:报告容独立完成关观点方法数文献等引已文中指出文中已注明引容外报告包含集体已公开发表作品成果存剽窃抄袭行
    特声明
    学生签名:
    日期:
    成绩评定
    实验完成质量分(70分)(实验步骤清晰详细深入实验记录真实完整等)
    报告撰写质量分(30分)(报告规范完整通详实等)
    总成绩(100分)



    指导教师签字:
                        日期:

    目录

    1 实验目求 1
    2 实验容 1
    3 实验程 2
    31 务1 2
    311 设计思想存储单元分配 2
    312 流程图 3
    313 源程序 3
    314 实验步骤 6
    315 实验记录 6
    32 务2 7
    321 设计思想存储单元分配 7
    322 流程图 8
    323 源程序 8
    324 实验步骤 11
    325 实验记录 11
    4 体会 11
    参考文献 12









    1 实验目求
    (1) 掌握汇编语言程序C语言程序混合编程方法
    (2) 熟悉C编译器基优化方法
    (3) 解C语言编译器命名方法子程序间参数传递机制
    2 实验容
    务1:C 语言程序中嵌入汇编语言指令语句序列
    实验二程序进行改造控程序输入输出等功C语言实现学生姓名搜索成绩计算C程序中嵌入汇编指令语句序列方式实现

    务2:C语言程序中调 汇编语言实现函数
    实验二程序进行改造控程序输入输出等功C语言实现学生姓名搜索成绩计算独立汇编语言子程序方式实现 C语言程序中调汇编语言子程序

    求:
    (1)C语言开发环境中实现汇编语言程序混合编程操作方法请家选择熟悉C语言开发环境查找相关资料完成实验
    (2)实验报告中较详细出开发环境实现方法
    (3)观察C语言编译器中种符号命名规(指编译器部识命名规符号名前面否加划线_等)子程序间参数传递机制通堆栈传递参数堆栈空间回收方法
    (4) 混合编程形成执行程序调试工具观察C语言形成程序代码汇编语言形成程序代码间相互关系包括段偏移值汇编指令访问C变量时翻译等
    (5) 请尝试C语言源程序中合理嵌入汇编语言指令语句达破坏C语言程序正确性目连续条C语言语句中间加入条修改AX寄存器汇编指令语句AX容处该修改样观察破坏C语言程序正确性效果(该项实验表明:C语言程序中考虑语句翻译成样机器码意嵌入汇编指令语句时存出错风险)
    (6) 观察C编译器优化策略代码影响
    (7) 通调试混合编程程序体会纯粹汇编语言编写程序调试程差异
    (8)通次实验希家明白:编程语言协解决问题利语言特点更解决问题利汇编语言知识够更理解高级语言部处理原理策略编写更C语言程序C编译器提供支持
    3 实验程
    31 务1
    311 设计思想存储单元分配
    务:C 语言程序中嵌入汇编语言指令语句序列

    实验二程序进行改造控程序输入输出等功C语言实现学生姓名搜索成绩计算C程序中嵌入汇编指令语句序列方式实现

    整体结构功通dowhile循环实现循环条件根者输入YN判断整循环程中学生姓名搜索成绩计算C语言嵌汇编指令实现

    1结构设计:
    struct Stu{
    char name[12] 储存姓名
    short score[4] 储存成绩
    }

    2存储单元分配
    Name分配12字节存储名字
    Score分配1短整型数组数组包含4元素分语文数学英语均成绩

    312 流程图

    313 源程序
    #include
    #include
    #include
    struct Stu{
    char name[12] 储存姓名
    short score[4] 储存成绩
    }

    int main() {
    struct Stu info[3]
    char name[12] 输入姓名
    int i j 计数器
    char op

    初始化三学生信息测试
    strcpy(info[0]namezhangsan_a)
    info[0]score[0] 86
    info[0]score[1] 82
    info[0]score[2] 88
    info[0]score[3] 0

    strcpy(info[1]name zhangsan_b)
    info[1]score[0] 48
    info[1]score[1] 79
    info[1]score[2] 46
    info[1]score[3] 0

    strcpy(info[2]name zhangsan_c)
    info[2]score[0] 96
    info[2]score[1] 92
    info[2]score[2] 98
    info[2]score[3] 0
    do{
    printf(Inlut the name of the student)
    gets(name)
    _asm {
    mov ecx 3
    lea edi info[0]
    LOAPI
    lea esi name
    mov edx 12
    LOAPJ
    mov al byte ptr[esi]
    mov bl byte ptr[edi]
    cmp al bl
    jnz NEXT
    cmp al '\0'
    jz FIGURE
    dec edx
    inc edi
    inc esi
    jmp LOAPJ
    NEXT
    dec ecx
    jz REINPUT
    add edx 8
    add edi edx
    jmp LOAPI
    FIGURE
    add edi edx
    mov al byte ptr[edi]
    mov ah 0
    add ax ax
    add ax ax
    mov dl byte ptr[edi + 2]
    mov dh 0
    add ax dx
    add ax dx
    mov dl byte ptr[edi + 4]
    mov dh 0
    add ax dx
    mov bl 7
    div bl
    mov ah 0
    mov word ptr[edi + 6] ax
    }
    for (i 0 i < 3 i++)
    {
    if (strcmp(info[i]name name))
    {
    printf(s\t info[i]name)
    for (j 0 j < 4 j++)
    {
    printf(d\t info[i]score[j])
    }
    printf(\n)
    }
    }
    _asm{
    REINPUT
    }

    printf(Input Y to exitN continue)
    op getchar()
    getchar()
    } while (op 'Y' || op 'y')

    for (i 0 i < 3 i++) {
    printf(s\t info[i]name)
    for (j 0 j < 4 j++){
    printf(d\t info[i]score[j])
    }
    printf(\n)
    }
    getchar()
    return 0
    }
    314 实验步骤
    1 Visual C++录入源程序编译链接运行
    2 观察提示信息出错编辑程序修改错误修改重新编译
    3 执行该程序观察程序运行结果
    315 实验记录
    (包括实验条件输入输出错误修改等信息记录)
    1 实验环境条件:Visual C++Visual C++窗口
    2 编译源程序时没发生异常
    3 连接程没发生异常

    4 输入提前录入三学生姓名



    5 运行目标程序


    6 根程序提示输入查找学生姓名

    输入提前录入学生姓名输出该学生项成绩提示否继续
    32 务2
    321 设计思想存储单元分配
    务:C语言程序中调 汇编语言实现函数

    实验二程序进行改造控程序输入输出等功C语言实现学生姓名搜索成绩计算独立汇编语言子程序方式实现 C语言程序中调汇编语言子程序

    整体结构功通dowhile循环实现循环条件根者输入YN判断整循环程中C语言通调汇编语言子程序达学生姓名搜索成绩计算功两功独立利汇编语言子程序方式实现

    1结构设计:
    struct Stu{
    char name[12] 储存姓名
    short score[4] 储存成绩
    }

    2存储单元分配
    Name分配12字节存储名字
    Score分配1短整型数组数组包含4元素分语文数学英语均成绩
    322 流程图

    323 源程序
    汇编语言子程序
    386
    model flat c
    code
    public dif
    dif proc par1dwordpar2dword
    mov ecx 1000
    mov edi par1
    LOAPI
    mov esi par2
    mov edx 12
    LOAPJ
    mov al byte ptr[esi]
    mov bl byte ptr[edi]
    cmp al bl
    jnz NEXT
    cmp al 0
    jz FIGURE
    dec edx
    inc edi
    inc esi
    jmp LOAPJ
    NEXT
    dec ecx
    jz REINPUT
    add edx 8
    add edi edx
    jmp LOAPI
    FIGURE
    add edi edx
    mov al byte ptr[edi]
    mov ah 0
    add ax ax
    add ax ax
    mov dl byte ptr[edi + 2]
    mov dh 0
    add ax dx
    add ax dx
    mov dl byte ptr[edi + 4]
    mov dh 0
    add ax dx
    mov bl 7
    div bl
    mov ah 0
    mov word ptr[edi + 6] ax
    REINPUT
    ret
    dif endp
    end

    C语言程序
    #include
    #include
    #include

    struct Stu{
    char name[12] 储存姓名
    short score[4] 储存成绩
    }
    extern void dif(struct stuinfo * char *)
    int main() {
    struct Stu info[3]
    char name[12] 输入姓名
    int i j 计数器
    char op
    初始化三学生信息测试
    strcpy(info[0]namezhangsan_a)
    info[0]score[0] 86
    info[0]score[1] 82
    info[0]score[2] 88
    info[0]score[3] 0

    strcpy(info[1]name zhangsan_b)
    info[1]score[0] 48
    info[1]score[1] 79
    info[1]score[2] 46
    info[1]score[3] 0

    strcpy(info[2]name zhangsan_c)
    info[2]score[0] 96
    info[2]score[1] 92
    info[2]score[2] 98
    info[2]score[3] 0
    do{
    printf(Inlut the name of the student)
    gets_s(name 12)
    dif(info name)
    for (i 0 i < 3 i++){
    if (strcmp(info[i]name name)){
    printf(s\t info[i]name)
    for (j 0 j < 4 j++){
    printf(d\t info[i]score[j])
    }
    printf(\n)
    }
    }
    printf(Input Y to exitN continue)
    op getchar() getchar()
    } while (op 'Y' || op 'y')
    for (i 0 i < 3 i++) {
    printf(s\t info[i]name)
    for (j 0 j < 4 j++){
    printf(d\t info[i]score[j])
    }
    printf(\n)
    }
    getchar()
    return 0
    }

    324 实验步骤

    325 实验记录
    见务
    4 体会
    通次实验更加深刻认识汇编语言高级语言间关系懂汇编语言C语言程序混合编程方法更加清楚子程序间参数传递机制混合编程基础相信编程实践中会变熟练
    参考文献
    [1] 王元珍等80x86汇编语言程序设计版(第1版)
    [2] 王晓虹等汇编语言程序设计教程版(第1版)

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    华中科技大学人力资源讲义——第5讲 用人与激励

    第5讲 用人导向与激励主讲内容一、员工使用及用人艺术二、激励三、案例研究思考题1、在实践中,企业高层管理人员应该如何识别人才、选择人才和合理使用人才?2、如何改革目前国有企业的用人机制?3、体...

    10年前   
    467    0

    汇编实验报告

    XX大 学 计 算 机 学 院、软 件 学 院实 验 报 告 学号: 姓名:专业:计算机科学与技术 班级: 第X周 课程名称   汇编语言程序设计课程设计(第四次)实验课时30课时...

    1年前   
    503    0

    2018年华中科技大学校长典礼致辞

    华中科技大学校长典礼致辞  【精彩语录】  >什么是母校?就是那个你一天骂它8遍却不许别人骂的地方。  >你们一定记住了“俯卧撑”、“躲猫猫”、“喝开水”,从热闹和愚蠢中,你们记忆了正义。  ...

    6年前   
    487    0

    华中科技大学人力资源讲义——人力资源管理案例

    目 录【案例1】汪华为的辞职申请书 2【案例2】“因人设岗”险中取胜 6【案例3】某食品公司的技术革新 9【案例4】纽约联合印刷公司的“择人之道” 9【案例5】红旗轻工设计院选择干部 11【案...

    10年前   
    669    0

    华中科技大学人力资源讲义——第4讲 招聘

    第4讲 员工招聘本讲主题:一、员工招聘的相关概念二、工作分析、HRP与招聘之间的关系三、招聘的途径及其有效性分析四、招聘中的公关策略五、招聘的基本内容和程序六、面试 七、案例分析 ...

    12年前   
    512    0

    2015届华中科技大学校长本科毕业典礼上的讲话

    2015届华中科技大学校长本科毕业典礼上的讲话  你们好!  首先,为你们完成学业并即将踏上新的征途送上最美好的祝愿。  同学们,在华中科技大学的这几年里,你们一定有很多珍贵的记忆!  你们真...

    9年前   
    519    0

    宝德HPC在华中科技大学物理学院成功应用-科教解决方案

    宝德HPC在华中科技大学物理学院成功应用-科教解决方案  解决方案供应商名称:深圳宝德科技股份有限公司  最终用户公司名称: 华中科技大学物理学院  本成功案例类型:教学科研的大型科学问题等进...

    10年前   
    462    0

    华中科技大学2014届本科生毕业典礼李培根演讲稿(精选多篇)

    华中科技大学2014届本科生毕业典礼李培根演讲稿(精选多篇)第一篇:华中科技大学2014届本科生毕业典礼李培根演讲稿华中科技大学2014届本科生毕业典礼李培根演讲稿 6月23日,华中科技大学2...

    12年前   
    471    0

    我的入党故事5篇汇编

    我的入党故事5篇 【篇一】 “没有共产党就没有新中国,没有共产党就没有新中国,共产党辛劳为民族,共产党他一心救中国他指给了人民解放的道路.....”一首经久不息的歌谣流传至今。记得小学放学...

    5年前   
    2052    0

    有用的专业实习报告汇编5篇

    有用的专业实习报告汇编5篇专业实习报告 篇1   会计实训是每年暑假前必不行少的一门功课,而会计实训对于我们会计专业同学来说也是至关重要的。因此无论你有多么的归心似箭,你都必需把会计实训给仔...

    2年前   
    388    0

    我的入党故事5篇汇编

    我的入党故事5篇 ! 【篇一】1999年12月,我应征入伍来到武警水电部队。在入伍第一年我提交了入党申请书,光荣地成为了一名入党积极分子,2005年6月成为预备党员,2006年6月转正。在...

    5年前   
    1969    0

    精选我的入党故事5篇汇编

    精选我的入党故事5篇 ! 【篇一】 时间如白驹过隙,一晃而过。如今成为正式党员已经快有3年了,回首自向党组织递交入党申请书到现在,不断严格要求自己,逐渐提高自己的党性修养,努力争做一名合...

    5年前   
    1193    0

    我的入党故事5篇汇编

    我的入党故事5篇 ! 【篇一】 10月18日党的十九大胜利开幕,不忘初心,牢记使命,追溯“为什么入党”,在不同的时代背景下,都有不同答案。在革命战争年代,入党意味着要流血牺牲;在和平年代...

    5年前   
    1664    0

    我的入党故事精选5篇汇编

    我的入党故事精选5篇 ! 【篇一】 流逝的时间与增长的岁数,总能冲淡脑海中的很多记忆,但我的入党故事却历久弥新,永远不能忘怀。 很小的时候,“党”这个词便占据了我的心灵,对党的初步印象...

    5年前   
    1423    0

    化学实验报告

    化学实验报告  化学是一门以实验为基础的学科。化学上的许多理论和定律都是从实验中发现归纳出来的。同时,化学理论的应用、评价也有赖于实验的探索和检验。虽然到了近代乃至现代,化学的飞速进步已经产生...

    11年前   
    1086    0

    上机实验报告

    上机实验报告  一.     题目1.  建立一个学生档案,内容包括学号,姓名,年龄,性别,数学,物理和英语3门功课成绩。要求实现以下功能:1)        数据输入;2)        查...

    8年前   
    887    0

    电路实验报告

    实验一 元件特性的示波测量法一、实验目的1、学习用示波器测量正弦信号的相位差。2、学习用示波器测量电压、电流、磁链、电荷等电路的基本变量3、掌握元件特性的示波测量法,加深对元件特性的理解。二...

    3年前   
    3128    0

    **学院实验报告

    实验内容:使用金融数据库查找宏观经济及行业相关数据,使用Excel进行作图分析。根据所得数据以及图形分析相关问题。实验目的:掌握金融数据库软件的相关使用,操作,快捷查找数据,能够制作美观图形,对于数据有效分析。

    3年前   
    696    0

    教育实验报告

    教育实验报告  教育实验报告  对某种教育现象实验后,要对整个实验过程进行全面总结,提出一个客观的、概括的、能反映全过程及其结果的书面材料,即谓教育实验报告。教育实验报告可分为三部分:①前言。...

    12年前   
    763    0

    生物实验报告

    生物实验报告  实验   生物组织中还原糖、脂肪、蛋白质的鉴定  一、实验目的  初步掌握鉴定生物组织中还原糖、脂肪、蛋白质的基本方法。  二、实验原理  1.还原糖的鉴定原理  生物组织中普...

    9年前   
    847    0

    文档贡献者

    文***品

    贡献于2020-10-18

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档