汇编语言分支结构程序设计_第1页
汇编语言分支结构程序设计_第2页
汇编语言分支结构程序设计_第3页
汇编语言分支结构程序设计_第4页
汇编语言分支结构程序设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、卖脸七分支姑构程序设计一、实验目得掌握条件转移指令得使用方法及指令对标志寄存器中各标志位得影响;掌握标志位与转 移指令之间得关系:会用条件转移指令与无条件转移指令设计多分支结构程序;掌握设置断 点调试程序得方法。二、7JL内存自BUF单元开始得缓冲区连续存放着10个学生得英文分数,编程序统计其中9 01006 089, 6 0以下者各有多少人?并把9 0-1 0 0分人数结果存放在P1单元中.6 0 一8 9分人数结果存放在P 2单元中,60分以下人数结果存放在P3单元中(Pl、P2、P3 为数据段得单元),最后把P1、P2、P3中得数以” Pl = ?、P2=?、P3=?显示在屏幕上。(注:

2、 数据以1 0进制显示)DATA S E GM ENTB UF DB70H, 58H, 5OH, 91H, 99H, 62H, 75H, 82H,74H,60H;定狡B U F单元地址开始得缓冲区得数据ORG0020H;程序执行时,将P1送到02 OOH内存单元P 1DB0ORG0030H:程序执行时,将P2送到0300H内存单元P2D B0ORG0040HP3 DB 0;程序执行时,将P3送到0400H内存单元ORG 005OH ;程序执行时,将DP1送到0500H内存单元DP1 DB P1= $*ORG 0060H:程序执行时,将DP2送到0600H内存单元DP2 DB P2二 $ 1OR

3、G 0070H;程序执行时,将DP3送到0700H内存单元DP3 DB *P3=$ ORG 0080H;程序执行时,将C OUNT送到0800H内存单元COUNT DW 10; *$ 为地址运算符,返回当前程序语句得地址偏移值DATA ENDS :定义数据段CSEG SEGMENTA SSUME CS :CSEG, DS : DATAPUSH DS ;将DS压入堆栈SUB AX, AX;将AX内存器内容清空PUSH AXS TART : MO V AX, DATAMOV DS, AX ;将数据传给数据段D SMOV CX, COUNT ;设置计数器CX,最多为10MOV SI, 0;给51赋值

4、为0LP1:MOVAL,BUF SI ;将8吓内存单元得第s i个内容赋值给ALCMPAL,90H;判断该学生得分数就是否=90JNBLP2;若不低于90则跳转到LP2CMP AL, 6OH:判断该学生得分数就是否二60JCLP3;若产生进位则跳转到LP3INCP2:将分数在608 9得学生得分数个数存放到P2中JMPLP5:跳转到LP5,即循环遍历数组B U FLP3:INCP3;将戸3中得个数+1JMF LP5:跳转到LP5LP2:I NCP1;给円中得个数+1LP5 :INCSI;将51进行+1操作,即下一个成绩分数LOOPLP1:循坏LP1LEADX, DP1MOVA H,09 HI

5、NT21HMOVDL,P1ADDDL, 30H;转对应得ASC I I值MOVAH, 2I NT2 1 H;将卩1数据转10进制输出LEA D X, DP2MOV AH, 09H I NT 21HMOV DL, P2ADD DL, 3 0H;转对应得ASC I I值MOV AH, 2I NT 2 1 H:将P2数据转10进制输出LEA DX, DP3MOV AH,09HI N T 21HMOV D L, P3ADD DL, 30H;转对应得ASCII值MOV AH, 2INT 21HMOVAH, 4 CHI NT21H;将戸3数据转1 0进制输出CSEG ENDSENDSTART对上述程序加上

6、注释,并运行观察结果。 运行结果:S C:JMSOFTMasmbinDV.CTemp.exePl= 2P2= 6P3= 2Press any key to continueMOV DS,AX;将DATAS中得数据存入DSMOV BL, DATAX ;将 DA TAX 送入 BLMOV BH, DATAY ;将D ATAY送入BHMOV AH, O1Hi nt 21H; D OS功能调用,等待键盘输入一个值CMP AL, +JE a d d it ion :若输入符号为+,则跳转到addi t i onCMP AL, -JE s ubtr actio n;若输入符号为一,则跳转到subtrac

7、t i onCMP AL,J E mu It i plica tion;若输入符号为*,则跳转到 mu 11 i p I i c a t i onCMP AL, * / 1JE d i v i si on add i tion:ADD BL, BHJMP p r int subtract i on:SUB BL, BHJMP print multi plica ti on: MOV AL, BH MUL BLMOV BL,AL JMP pr i nt;若输入符号为/,则跳转到div i si o n;将BL, BH内容相加;跳转到输出过程;将8匚BH内容相减;将BL,BH内容相乘MOV AL,

8、 BLSU B AH, AHDIV BHMOV BL, ALJMP pr i n t;将BL, BH内容相除print:MOV AL, BLMOV CL, 4SHR AL, CLADD AL,30HCMP AL, 39HJBE looklADD AL, O7H;将AL数据逻辑右移4位:将AL数据转为对应ASCI I值;比较AL中数据与39H得大小;当AL =39H,则只如O7HMOV DL, ALMOV RLT, ALMOV AH, 02HINT 21HMOV AL, BLAND A L, OFHADD AL, 30HCMP AL, 39HJBE Iook2ADD AL, 07HI o o k

9、2 :MOV DL, ALMOV RLT, ALMOV AH, 02 H;dos功能调用,输出DLI NT 21 H;此处输入代码段代码MOV AH, 4CHI NT 2 1 HCODES EN DSEND START运行结果:减:除:BUF开始得内存单元得10个数中有2个二90, 6个在6089, 2个在60以下 验证正确三、实验题1已知DATAX与DATAY单元各存放一个带符号字节数据,从键盘上接收加(+)、减(-)、乘(*)或除(/)符号,然后完成相应运算,结果存入RLT单元.四、实验报告1、总结调试分支程序得方法:2、写出程序淸单,并记录执行结果。解:1 总结调试分支程序得方法将每个分支得功能编写淸楚后,根据运行结果与自身判断结果相比较,若有误,则单步执行程序,观察程序运行得每一步结果变化就是否与自身想象得一样。2.已知DATAX与D ATAY单元齐存放一个带符号字节数据,从键盘上接收加( + )、减()、乘(* *)或除(/)符号,然后完成相应运算,结果存入RLT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论