汇编语言及应用——程序设计

本文介绍了汇编语言的学习目标,包括掌握串操作、循环和转移指令的使用,以及数据定义伪指令。通过示例程序,展示了如何比较两个数据块的相同性,并从键盘接收字符进行显示。此外,还提供了一个程序,用于查找字符串中的空格并替换为'#',输出相应提示。
摘要由CSDN通过智能技术生成

一、实验目的

学习串操作指令、循环指令、转移指令的用法;掌握数据定义伪指令的格式,会用DEBUG中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。

二、示 例

1、运行下面程序,观察结果
已知当前数据段中DADT1和DADT2开始分别存放若干字节数据,数据个数相同,编制程序检查两数据块中数据是否相同,若相同,则在屏幕上显示1,否则显示0。
【参考程序如下】

DSEG  SEGMENT
DATA1 DB     'ABCDEFG3'
DATA2 DB     'ABCDEF3G'
CNT   DW     8
DSEG  ENDS
CSEG  SEGMENT
      ASSUME CS:CSEG,DS:DSEG
START:MOV    AX,DSEG
      MOV    DS,AX
      MOV    DL,31H
      LEA    SI,DATA1
      LEA    DI,DATA2
      MOV    CX,CNT
      DEC    SI			CLD
      DEC    DI			REPE CMPSB
AGAIN:INC    SI
      INC    DI
      MOV    AL,[SI]
      CMP    AL,[DI]
      LOOPZ  AGAIN
      JZ     DISP
      DEC    DL
DISP: MOV    AH,2
      INT    21H
      MOV    AH,4CH
      INT    21H
CSEG  ENDS
      END    START

阅读程序,理解循环程序结构及执行过程,并改成串指令实现。

DSEG  SEGMENT
DATA1 DB     'ABCDEFG3'
DATA2 DB     'ABCDEF3G'
CNT   DW     8
DSEG  ENDS
CSEG  SEGMENT
      ASSUME CS:CSEG,DS:DSEG
START:MOV    AX,DSEG
      MOV    DS,AX
      MOV    ES,AX
MOV    DL,31H
      LEA    SI,DATA1
      LEA    DI,DATA2
      MOV    CX,CNT
      CLD
      REPE CMPSB
      JZ     DISP
      DEC    DL
DISP: MOV    AH,2
      INT    21H
      MOV    AH,4CH
      INT    21H
CSEG  ENDS
      END    START

  1. 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。
DATAS SEGMENT  
DATAS ENDS
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX    
    MOV AH,07H
    INT 21H 
    DEC AL
    MOV DL,AL
    MOV CX,3
	L1:	MOV AH,02H		
		INT 21H
		INC DL
	LOOP L1
CODES ENDS
END START

三 、编写程序

  1. 按要求编写程序:在附加段中有一个字符串MESS,其长度为19,要求查找其中有无空格符,若有空格符,则把首次发现的空格符改为‘#’,存回该单元,并显示‘Y’,否则显示‘N’。
    提示:
    ①“空格符”ASCII码20H ,“#”ASCII码23H
    ② 用SCAS串扫描实现)

ext segment
mess db ‘COMPUTER SOFTWARE $ ’
ext ends
……

程序代码:

EXT   SEGMENT
	MESS DB 'COMPUTER SOFTWARE $ '
EXT   ENDS
CODE  SEGMENT
      ASSUME CS:CODE,DS:EXT
START:
	  MOV    AX,EXT
      MOV    ES,AX
      LEA    DI,MESS
      MOV    CX,19
      MOV    AL,20H
      CLD
      REPNE  SCASB
	  JZ     YES
	  MOV    DL,'N'
	  JMP	 DISP
	YES:  DEC  DI
	  MOV	 BYTE PTR ES:[DI],23H
	  MOV    DL,'Y'
DISP: MOV    AH,2
      INT    21H
      MOV    AH,4CH
      INT    21H
CODE  ENDS
      END    START

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值