实验二 汇编语言程序设计

实验二 汇编语言程序设计

1、实验目的及要求

实验目的:
①学习数据传送和算术运算指令的用法
②熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。
实验仪器、设备或软件
实验设备:计算机
实验软件:Masm for Windows 集成实验环境 2015
实验要求:
若在一片内存储区中有一字符串,起始地址为STRING。字符串中有字母和数字两种符号,要求把其中的字母和数字符号分开,分别放在同一段的两个空间,存放字母的空间起始地址为ZIFU;存放数字符号的空间起始地址为SHUZI。
程序代码:
DATA SEGMENT
ORG 1000H
STRING DB ‘DIDEfe234fef38fj2jf9DE99af3FAE8E83F92fjIjEIFIFQ’
COUNT EQU − S T R I N G ; 字 符 串 长 度 O R G 2000 H Z I F U D B C O U N T D U P ( 0 ) , 0 D H , 0 A H , ′ -STRING ; 字符串长度 ORG 2000H ZIFU DB COUNT DUP(0),0DH,0AH,' STRING;ORG2000HZIFUDBCOUNTDUP(0),0DH,0AH,’ ; 字母存放区
ORG 3000H
SHUZI DB COUNT DUP(0),0DH,0AH,’$’ ; 数字存放区
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START:MOV AX,DATA
MOV DS,AX ;DS指向DATA
MOV ES,AX ;ES指向DATA
MOV SI,OFFSET STRING ; DS:SI指向原字符串
MOV BX,OFFSET ZIFU ; BX指向字母存放区
MOV DI,OFFSET SHUZI ; DI指向数字存放区
MOV CX, COUNT
CLD
LOP:LODSB ; 将原字符串中一个字节取至AL,且SI加1
CMP AL,30H ; 判断所取字节为数字符号吗?
JB LZIFU ; 不为数字符号时转字母处理
CMP AL,39H
JA LZIFU ; 不为数字符号时转字母处理
STOSB ; 是数字符号送数字区,且DI加1
JMP AGAIN
LZIFU:XCHG BX,DI ; 交换BX和DI,使DI指向字母字符区
STOSB ; 送字母到字母区,指针增加1
XCHG BX,DI ; BX,DI恢复原值
AGAIN: LOOP LOP ; 所有符号都处理了吗,没有则转LOP;否则,顺序执行
MOV DX,OFFSET ZIFU
MOV AH,9 ; 输出字母区
INT 21H
MOV DX,OFFSET SHUZI
INT 21H ; 输出数字区
MOV AH,4CH
INT 21H ; 返回DOS系统
CODE ENDS
END START
输出结果:
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小程同学>o<

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值