河北工业大学汇编语言程序设计实验一
从键盘上接收一位十进制数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)