文章目录

  • 一、程序改错(显示25+9=34)
  • 二、统计字符串(42H~45H)

一、程序改错(显示25+9=34)

排除语法错误:给出的是一个通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。要求实验者按照原样对源程序进行编辑,汇编后,根据TASM给出的信息对源程序进行修改,知道没有语法错误为止。然后进行链接,并执行相应可执行文件。正确的执行结果在屏幕上显示:25+9=34。


.486
DATA SEGMENT  USE16             ; error1: SEGMENT 关键词有空格SUM     DB  ?,?                 ; error2: 多了一个逗号MESG    DB  '25+9='DB  0, 0, '$'              ; error3: 添加结束标志 '$'N1      DB  9,    0F0H                ; error4: 十六进制字母开头的数字,需要以0开始
N2      DB  25                      ; error5: 数据类型为DB
DATA    ENDSCODE    SEGMENT USE16
ASSUME  CS:CODE, DS:DATABEG:    MOV     AX,     DATAMOV     DS,     AXMOV   BX,     OFFSET   SUMMOV     AH,     N1MOV   AL,     N2ADD   AH,     ALMOV   [BX],   AHCALL  CHANGMOV    AH,     9MOV    DX,     OFFSET MESG         ; error6: 是MESG不是MEST INT   21H MOV     AH,     4CHINT  21HCHANG PROC                               ; error7: 不用加冒号
LAST:CMP    byte ptr [BX],  10      ; error8: 指定内存单元大小JC    NEXTSUB     byte ptr [BX],  10      ; error9: 指定内存单元大小INC   byte ptr [BX+7]            ; error10: 指定内存单元大小JMP  LASTNEXT:   MOV     AH,                 SUM     ; error11:ADD   [BX+8],                AHADD   BYTE PTR [BX+7],   30H     ; error12: 长度不匹配ADD     BYTE PTR [BX+8],   30H     ; error13: 放个位上的数RET
CHANG   ENDP                                ; error14: 不用加冒号
CODE    ENDS
END     BEG

二、统计字符串(42H~45H)

从BUF单元开始存有一字符串(长度<255),编程实现统计该字符串中的ASCII在42H~45H之间的字符个数,并将统计结果以二进制形式显示在屏幕。


.486
DATA SEGMENT USE16
BUF     DB     'ABBBCDEFGH'     ; 实质: 统计BCDE的个数
COUNT   EQU    $-BUF            ; COUNT: 字符串长度
DATA    ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATA
BEG:    MOV     AX,     DATAMOV     DS,     AXMOV     BL,     0         ; BL=满足条件的字符个数,初始值为0MOV     SI,     0           ; BUF数组下标,初始值为0MOV     CX,     COUNTCALL    COMPARE              ; 调用比较函数CALL    DISP
EXIT:   MOV     AH,     4CHINT     21HCOMPARE PROC
LAST:   CMP     BUF[SI],    42HJC      NEXT             ; 小于 42H, JUMP NEXTCMP     BUF[SI],    45HJA      NEXT              ; 大于 45H, jumpINC     BL                ; 8位
NEXT:   INC     SILOOP    LASTRET                       ; 子程序返回
COMPARE ENDPDISP    PROC                        ; 以二进制输出,BL中存储的就是二进制MOV     CL,      8           ; 显示位8位
LAST:   MOV     DL,     '0'RCL     BL,        1           ; 带进位的循环左移JNC     NEXT              ; C=0,则跳转直接显示MOV     DL,        '1'
NEXT:   MOV     AH,     2INT     21HLOOP    LASTRET
DISP    ENDPCODE    ENDSEND     BEG


我们输入的是字符串是 ‘ABBBCDEFGH’,在范围42H~45H,即字符等于BCDE的个数为 00000110,为 5 个,结果正确

南京邮电大学汇编语言程序设计实验一(汇编语言语法练习与代码转换)相关推荐

  1. 南京邮电大学高级语言程序设计实验五(指针与字符串实验)

    实验题目(1)[见实验教材实验六的题目2]:编程exp6_2.c,现有整型变量x,y,调用交换函数以期实现两个值的交换.下表中4种不同的定义及调用分别进行测试并填写表格. 表1 拟实现交换的四种方法 ...

  2. 南京邮电大学高级语言程序设计实验三(函数实验)

    一. 实验目的和要求 (1)掌握正确的函数定义与调用,需要时会正确使用函数声明.会正确设置形式参数,理解参数传递及程序的执行流程. (2)理解各种不同存储类别变量的生命期与作用域 (3)进一步熟悉调试 ...

  3. 计算机组成原理汇编程序实验,计算机组成原理汇编语言程序设计实验.ppt

    汇编语言程序设计实验主讲:马冰汇编语言上机操作步骤汇编语言上机所必备的软件汇编语言上机操作过程汇编语言上机所必备的软件操作系统:DOS或CCDOS编辑程序:行编辑程序EDLIN.COMWPS全屏编辑程 ...

  4. 南京邮电大学《程序设计(上机)》题目

    南京邮电大学<程序设计(上机)>题目 2022-2023学年第1学期 程序设计 实验指导书 胥备 17766106600 一. 实验前准备 硬件:微型计算机一台(个人笔记本电脑) 软件:任 ...

  5. 南京邮电大学c语言实验报告4,南京邮电大学算法设计实验报告——动态规划法...

    <南京邮电大学算法设计实验报告--动态规划法>由会员分享,可在线阅读,更多相关<南京邮电大学算法设计实验报告--动态规划法(12页珍藏版)>请在人人文库网上搜索. 1.实 验 ...

  6. 南邮Android软件设计报告,南京邮电大学软件设计实验报告

    南京邮电大学软件设计实验报告 软件设计报告( 2014 / 2015 学年 第 二 学期)课程名称 软件设计 指导老师 赵江 实习时间 第十八周 学生姓名 学号 ____学院______专业软件设计课 ...

  7. 南邮java实验一报告_南京邮电大学双语web实验一报告2017.docx

    南京邮电大学双语web实验一报告2017 第四章 实验 2 Web 服务端脚本编写一 实验目的 (1)通过上机实践,熟悉 Apache 服务器的安装和配置使用方法. (2)掌握 PHP 脚本语言,熟练 ...

  8. 南京邮电大学汇编语言程序设计实验一:汇编语言语法练习与代码转换

    一.实验目的和要求 1. 掌握汇编语言源程序的格式: 2. 进一步学习汇编语言源程序的编辑.汇编.目标文件的链接和可执行文件的执行全过程: 3. 掌握编辑软件.TASM/MASM.TLINK和TD的使 ...

  9. 电子科大计算机调试,电子科大计算机学院 汇编语言程序设计 实验报告 99分精品版.doc...

    电子科技大学 计算机科学与工程 学院 标 准 实 验 报 告 (实验)课程名称 汇编语言与微机接口技术综合实验 电子科技大学教务处制表 电 子 科 技 大 学 实 验 报 告 (一) 学生姓名:郫县英 ...

最新文章

  1. 我是买家的前世今生,该到了say goodbye的时候了!
  2. spring aop 应用实例
  3. 软件开发中的开源协议详解!
  4. 【MM模块】 Blanket Purchase Orders 框架订单
  5. cocos2D(四)---- CCSprite
  6. [转]Android笔记:ScrollView嵌套ViewPager的滚动冲突解决方法
  7. RhinoMock入门(6)——安装结果和约束
  8. java B2B2C 仿淘宝电子商城系统-基于Rabbitmq实现延迟消息
  9. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_3_对象的反序列化流_ObjectInputStream...
  10. 编码基本功:关于构建(build)号,不懂不要装
  11. C#使用Newtonsoft.Json读写json、读写Base64图像
  12. 网络模型 OSI七层协议和TCP/IP四层协议
  13. C语言中的sqrt函数
  14. “斗”转星移,高精度(NTP网络授时)北斗授时系统
  15. 【2023秋招】网易雷火游戏研发工程师笔试
  16. 学习Python处理Excel 难度0级别 多表合并、多条件筛选、找出重复项、去重
  17. 调查问卷的人口学基本信息该如何设计?
  18. angular的传值,子传父,父传子
  19. 给测试小姐姐的第三封信 | ORACLE存储过程知识分享和测试说明
  20. 记录建hbase对应hive外表坑

热门文章

  1. AI科研绘图(二):模式图的基本画法
  2. Element UI输入框focus()方法自动获取焦点失败处理方法
  3. 数据库加载出错时该怎么解决
  4. 计算机网络——奈氏准则和香农定理
  5. C# 模拟温室大棚控制系统
  6. SQL首字母大写其他字母小写
  7. [sig20]对马岛之魂的渲染技术(1/3)
  8. OSChina 周六乱弹 ——临近过节,请注意老板加班要求
  9. vs2017无法查找或打开 pdb 文件
  10. 核查医药代表备案信息是否正确