河北工业大学汇编语言程序设计实验.doc

河北工业大学汇编语言程序设计实验.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
该文档主要介绍了河北工业大学的汇编语言程序设计实验,包括了顺序与分支程序设计数据传输及算术和逻辑运算指令的用法等内容,同时介绍了一段代码段相关知识摘要简洁明了,没有多余信息或回溯,适合在文档生成后作为摘要使用

汇编语言程序设计实验

实验一顺序与分支程序设计

一、实验目的

1)掌握顺序程序设计方法。

2)掌握分支程序的结构及分支程序的设计,调试方法。

3)学习数据传送及算术和逻辑运算指令的用法。

4)熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。

二、实验内容

1)有一字变量BUF1是以原码表示的有符号数,要求将其转换为反码和补码,分别存入BUF2和BUF3单元,并在屏幕上显示出来。

DATA??SEGMENT;数据段

BUF1??DW?7898H

BUF2??DW?4?DUP(0),0AH,0DH,$

BUF3??DW?4?DUP(0),$

DATA??ENDS;数据段结束

CODE??SEGMENT;代码段

????ASSUME?CS:CODE,DS:DATA;段存放器关联说明伪指令

BEGIN:?MOV?AX,DATA

MOV?DS,AX;将数据段的基地址装入数据段存放器DS

MOV?AX,BUF1;将字型变量BUF1的值装入AX存放器

ADD?AX,0;AX存放器里的数据加0,以便进行转移测试

????????JS?NEXT;判断〔AX〕的正负,假设为负那么转到NEXT,为正那么往下顺序执行。

????????MOV?BUF2,AX;为正,反码与原码一样

????????MOV?BUF3,AX;为正,补码与原码一样

????????JMP??EEE

NEXT:AND?AX,7FFFH;将符号位变为0

????????NOT?AX;求反码

????????MOV?BUF2,AX;将BUF1的反码装入BUF2

????????INC??AX;求补码

????????MOV?BUF3,AX;将补码装入BUF3

EEE:MOV?CX,0004H;将0004H装入CX计数器存放器中

??????MOV?DI,OFFSET?BUF2;将DI指向变量BUF2开始的存储单元

??????MOV?DX,?[DI];将DI所指的数据装入DX存放器中

??????ADD?DI,03;将DI指针下移三个字

BBB:MOV?AX,DX;将DX中的内容装入AX存放器中

??????AND?AX,000FH;即使BUF2的低四位不变,其余均变为0

??????CMP?AL,0AH;比拟[AL]与0AH的大小,以便能正确转换为0-9的ASCII值

??????JB?QQQ;假设[AL]0AH,那么转到QQQ,否那么,顺序执行

??????ADD?AL,07H;因为[AL]0AH,所以[AL]+07H,使得AL能转换成相应数字的ASCII值

QQQ:ADD?AL,30H;将[AL]转换成相应数字的ASCII值

????MOV?[DI],AL;将AL中的内容装入以DS中的内容为段基地址,以DI的内容为偏移地址的存储单元中

????DEC?DI;DI=DI-1,即将DI指向前一个存储单元

????PUSH?CX;保存CX存放器的内容

????MOV?CL,04H;给CL存放器赋值为04H

????SHR?DX,CL;将[DX]逻辑右移四位

????POP?CX;恢复CX存放器的内容

????LOOP?BBB;循环判断语句,CX=CX-1,假设CX不等于0,那么转到BBB,将下一个低四位存入存储单元中,否那么循环结束

????MOV?CX,0004H;给CX存放器赋值为0004H

????MOV?SI,OFFSET?BUF3;将SI指向变量BUF3开始的存储单元

????MOV?DX,[SI];将SI所指的数据装入DX存放器中

????ADD?SI,03H;将DI指针下移三个字

CCC:MOV?AX,DX;将DX中的内容装入AX存放器中

????AND?AX,000FH;即使BUF3的低四位不变,其余均变为0

???CMP?AL,0AH;比拟[AL]与0AH的大小,以便能正确转换为0-9的ASCII值

???JB?DDD;假设[AL]0AH,那么转到DDD,否那么,顺序执行

???ADD?AL,07H;因为[AL]0AH,所以[AL]+07H,使得AL能转换成相应数字的ASCII值

DDD:ADD?AL,?30H;将[AL]转换成相应数字的ASCII值

???MOV?[SI],AL;将AL中的内容装入以DS中的内容为段基地址,以SI的内容为偏移地址的存储单元中

???DEC?SI;SI=SI-1,即将SI指向前一个存储单元

???PUS

您可能关注的文档

文档评论(0)

展翅高飞2020 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档