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

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

从键盘上接收一位十进制数X,计算Y值,并以十六进制形式显示出来,Y按下列公式计算。

这个实验,其实不难,但是鉴于有很多学弟学妹学到我这个时候可能还不知道汇编语言该怎么编,就像我写出这个博客之前那样,我决定还是把这个实验的代码贴上来造福后人,想知道实验原理的可以看我代码的注释,我觉得挺详细的了

ASSUME CS:CODE,DS:DATA

DATA SEGMENT
X    DW 0              ;定义X变量储存输入的X
Y    DW 0              ;定义Y变量储存输入的Y
STR1 DB 'Please Enter The Value Of X:$'    ;输出提示字符串
STR2 DB 13,10,'The Value Of Y Is:$'        
                                           ;用于查表输出16进制数
STR3 DB '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' 
DATA ENDS

CODE SEGMENT
START:
   MOV AX,DATA
   MOV DS,AX

SHURU:                    ;输入
   MOV DX,OFFSET STR1
   MOV AH,09H
   INT 21H 
   MOV AX,0
   MOV AH,01H
   INT 21H
   SUB AX,100H
   SUB AX,30H
   MOV X,AX

X3:                       ;与3比较,不相等则跳入4
   CMP AX,3
   JNE X4
   MOV BX,X               ;计算x^2+x
   MUL BX
   ADD AX,BX
   MOV Y,AX
   JMP SHUCHU1            ;转到输出部分

X4:                       ;与4比较,不相等则跳入5
   CMP AX,4
   JNE X5
   MOV BX,X
   MUL BX                 ;计算x^2-2*x
   SUB AX,BX
   SUB AX,BX
   MOV Y,AX
   JMP SHUCHU1            ;转到输出部分

X5:                       ;与5比较,不相等则跳入6
   CMP AX,5
   JNE X6
   MOV BX,X               ;计算x^2
   MUL BX
   MOV Y,AX
   JMP SHUCHU1            ;转到输出部分

X6:
   MOV BX,X
   MUL BX                 ;计算x^2/2
   SHR AX,1
   MOV Y,AX
   JMP SHUCHU1            ;转到输出部分

SHUCHU1:                  ;输出前的准备
   MOV CX,4
   MOV DX,OFFSET STR2
   MOV AH,09H
   INT 21H 
   MOV AH,0
SHUCHU:                   ;通过取最低四位,循环右移输出字符
   MOV X,CX
   MOV CL,4
   ROL AX,CL
   MOV Y,AX
   AND AX,0000000000001111B
   MOV BX,AX
   MOV DI,OFFSET STR3
   MOV DL,[BX+DI]
   MOV AH,02H
   INT 21H
   MOV AX,Y
   MOV CX,X
   LOOP SHUCHU

   MOV DL,'H'
   MOV AH,02H
   INT 21H

   MOV AX,4C00H
   INT 21H

CODE ENDS
END START

看都看到这里了,如果觉得好的话,赞助学长点钱喝可乐嘛,大家一起快乐(o_o)
在这里插入图片描述

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值