汇编实验

(1)练习并掌握汇编语言开发全过程,在屏幕打印HELLO字符串。

程序段为:
            .486
  DATA     SEGMENT USE16                   ;定义数据段
  MESG    DB      '1511','$'               ;引号内为学号
  DATA    ENDS
  CODE    SEGMENT USE16                   ;定义代码段
      ASSUME  CS:CODE,DS:DATA
  BEG:	   MOV     AX,DATA
           MOV     DS,AX
LAST:      MOV     AH,9
           MOV  DX,OFFSET MESG
           INT     21H
	   MOV	   AH,4CH           
 	   INT	    21H                     ;返回DOS
  CODE   ENDS
          END   BEG

 


(2)排除语法错误:给出的是一个通过比较法完成8位二进制数转换成十进制数送屏幕显示功能的汇编语言源程序,但有很多语法错误。要求实验者按照原样对源程序进行编辑,汇编后,根据TASM给出的信息对源程序进行修改,知道没有语法错误为止。然后进行链接,并执行相应可执行文件。正确的执行结果在屏幕上显示:25+9=34。

 

修改后代码:(分号后为修改)
;FILENAME: EXA131.ASM
    .486
DATA SEGMENT USE16
     SUM  DB ?,?,       ;SUM  DB ?,?
     MESG DB '25+9='
          DB 0,0           :DB 0,0,'$'
     N1   DB 9,F0H        : N1   DB 9,0F0H
     N2   DB 25
DATA ENDS

CODE SEGMENT USE16
     ASSUME  CS:CODE, DS:DATA
BEG:   MOV AX, DATA
       MOV DS,AX
       MOV BX,OFFSET SUM
       MOV AH,N1
       MOV AL,N2
       ADD AH,AL
       MOV [BX],AH
       CALL CHANG
       MOV AH,9
       MOV DX,OFFSET MESG
       INT 21H
       MOV AH,4CH
       INT 21H

CHANG  PROC
LAST:  CMP  [BX],10             ;LAST:  CMP BYTE PTR [BX],10
       JC  NEXT
       SUB  [BX],10              : SUB BYTE PTR [BX],10
       INC  [BX+7]              : INC BYTE PTR [BX+7]
       JMP LAST
NEXT:                      ;MOV CL,SUM
       ADD [BX+8],SUM     ;ADD [BX+8],CL
                            ; MOV DL,30H
       ADD [BX+7],30H       ;ADD [BX+7],DL
      ADD [BX+8],30H       ;ADD [BX+8],DL
       RET
CHANG  ENDP

CODE ENDS
     END BEG

运行代码:

;FILENAME: EXA131.ASM
    .486
DATA SEGMENT USE16
     SUM  DB ?,?
     MESG DB '25+9='
          DB 0,0,'$'
     N1   DB 9,0F0H
     N2   DB 25
DATA ENDS

CODE SEGMENT USE16
     ASSUME  CS:CODE, DS:DATA
BEG:   MOV AX, DATA
       MOV DS,AX
       MOV BX,OFFSET SUM
       MOV AH,N1
       MOV AL,N2
       ADD AH,AL
       MOV [BX],AH
       CALL CHANG
       MOV AH,9
       MOV DX,OFFSET MESG
       INT 21H
       MOV AH,4CH
       INT 21H

CHANG  PROC
LAST:  CMP BYTE PTR [BX],10
       JC  NEXT
       SUB BYTE PTR [BX],10
       INC BYTE PTR [BX+7]
       JMP LAST
NEXT:  MOV CL,SUM
       ADD [BX+8],CL
       MOV DL,30H
       ADD [BX+7],DL
       ADD [BX+8],DL
       RET
CHANG  ENDP

CODE ENDS
     END BEG



 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

const

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

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

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

打赏作者

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

抵扣说明:

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

余额充值