我是靠谱客的博主 坚强毛衣,最近开发中收集的这篇文章主要介绍用汇编语言实现从1加到100的方法(1+2+...+100),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

用汇编语言实现1+2+...+100

;课堂作业
;计算1+2+...+100
DATA SEGMENT
 COUNT DW 0  ;计数
DATA ENDS  

STACK SEGMENT PARA STACK
 BUF DW 20H DUP (0)
 LEN EQU $-BUF
STACK ENDS

CODESEG SEGMENT
ASSUME CS:CODESEG,SS:STACK,DS:DATA
START:
;初始化堆栈段ss和数据段ds
 MOV AX,STACK
 MOV SS,AX
 MOV SP,LEN
 MOV AX,DATA
 MOV DS,AX
 
 MOV CX,64H ;循环100次
 MOV AX,0
S:
  ADD COUNT,01H
  ADD AX,COUNT
  LOOP S
  
  MOV DL,AL
  MOV AL,AH
  CALL DISP_2_HEX
  MOV AL,DL
  CALL DISP_2_HEX
  CALL DISP_CREF
  MOV AH,4CH
  INT 21H

 
;将AL的高四位与低四位分别输出
DISP_2_HEX:
 PUSH AX
 PUSH BX
 PUSHF
 MOV AH,0 ;清零
 MOV BL,10H ;作除法
 DIV BL ;AL :商 高位 AH 余数 低位
 CALL DISP_1_HEX ;输出AL的结果
 MOV AL,AH
 CALL DISP_1_HEX
 POPF
 POP BX
 POP AX
RET

;输出AL的数字和字母
DISP_1_HEX: 
 PUSH AX
 PUSH DX
 PUSHF
 MOV DL,AL
 CMP DL,09
 JBE L_1 ;小于等于9则跳过下一条语句
 ADD DL,27H ;大于10则转换为小写字母并执行到下面的L_1的RET结束
        ;数字10与字符a差为39(27H)
;数字输出(1的ascii码为31H)
L_1: 
 ADD DL,30H ;数字转换为字符
 MOV AH,02H
 INT 21H
 POPF
 POP DX
 POP AX 
RET

;输出回车换行
DISP_CREF: 
 PUSH DX
 PUSH AX
 MOV AH,02H
 MOV DL,0DH
 INT 21H
 MOV DL,0AH
 INT 21H
 POP AX
 POP DX
RET

CODESEG ENDS
END START

 输出结果为13ba(5050的十六进制)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持靠谱客。

最后

以上就是坚强毛衣为你收集整理的用汇编语言实现从1加到100的方法(1+2+...+100)的全部内容,希望文章能够帮你解决用汇编语言实现从1加到100的方法(1+2+...+100)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(89)

评论列表共有 0 条评论

立即
投稿
返回
顶部