哈工程 微机原理实验 实验二.docVIP

  • 11
  • 0
  • 约2.75千字
  • 约 10页
  • 2018-02-15 发布于河南
  • 举报
哈工程 微机原理实验 实验二

哈尔滨工程大学 实 验 报 告 实 验 名 称: 实验二 分支循环程序设计及实现 实验室名称: 水声电子信息实验室 哈尔滨工程大学实验室与资产管理处 制 1.实验名称 分支循环程序设计及实现 2.实验目的 1.学习分支程序、循环结构程序的设计和调试方法; 2.掌握分支、循环等程序的基本结构。 3.通过循环指令、条件转移指令等完成较复杂程序的设计。 3.实验内容 图1 实验1的编程框图 程序源代码 DATA SEGMENT BUF1 DW 1111H,2222H,3333H,4444H,5555H,6666H,7777H,8888H,8888H,7777H,6666H,5555H,4444H,3333H,2222H,1111H ;定义数组 BUF2 DW 16 DUP(?) ;定义目标数组 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV CX, 16 ;利用CX确定循环次数 MOV SI, OFFSET BUF1 ;将BUF1的偏移地址赋给SI MOV DI, OFFSET BUF2 ;将BUF2的偏移地址赋给DI KEEPUP: MOV BX, [SI] ;将BUF1中的数取出,赋给BX MOV [DI], BX ;将BUF1中的数赋给BUF2 INC SI ;SI指向下一个数的地址 INC SI ;DI指向下一个数的地址 INC DI INC DI LOOP KEEPUP MOV AH, 4CH INT 21H CODE ENDS END START 上机运行这段程序,可以得到如下结果。 图2 实验1的编程结果 可以看出,内存中的BUF2位置已经被复制了BUF1的数据,证明程序运行正常,符合要求。 3.2实验二 将BUF1开始的16个以字为单位的数据中的正数搬移到BUF2。 编程流程图: 图3 实验2的编程框图 程序源代码: DATA SEGMENT BUF1 DW 1111H,2222H,3333H,4444H,8888H,9999H,0AAAAH,0BBBBH, 0123H,0234H,0345H,4567H,89ABH,8123H,8124H,8943H BUF2 DW 16 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV CX, 16 MOV DI, OFFSET BUF1 MOV BX, OFFSET BUF2 KEEPUP: MOV AX, [DI] TEST AX, 8000H JZ POSITIVE JMP GOON POSITIVE: MOV [BX], AX INC BX INC BX GOON: INC DI INC DI LOOP KEEPUP MOV AH, 4CH INT 21H CODE ENDS END START 运行程序,我得到了如下结果。 图4 结果取出正数 正数结果已经取出。 3.3实验三 已知数据区STRINGA开始的存储单元中,存有用大写字母表示的自己姓名的全拼,将其转换成小写字母后,存放到STRINGB开始的存储单元中。 编程流程图: 图5 实验3的编程框图 程序源代码: DATA SEGMENT STRINGA DB ZHANG MENG LONG,$ STRINGB DB 15 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV CX,15 MOV SI,OFFSET STRINGA MOV DI,OFFSET STRINGB KEEPUP: MOV BX,[SI] ADD BX,20H MOV [DI],BX INC SI INC DI LOOP KEEPUP MOV AH,4CH INT 21H CODE ENDS END START 运行程序,我得到了如下结果。 图6 姓名大写拼音转为了小写拼音 3.4实验四 在题2的基础上继续编程,实现当从键盘输入’A

文档评论(0)

1亿VIP精品文档

相关文档