急高分100悬赏汇编程序!

来源:百度知道 编辑:UC知道 时间:2024/06/28 04:51:48
设计性实验指导方案
本设计性实验中共包括三个实验,要求学生任选其中的两个实验作为实验内容,具体的要求及目的如下:
实验一:加减乘除四则计算
一、设计目的
1、深入了解加,减,乘,除指令。
2、了解指令对标志位的影响,掌握多字节运算的方法。
3、能够综合应用所学的汇编语言进行程序设计,编写应用程序。

二、设计要求
1、做好充分准备,设计一个能实现加,减,乘,除余计算的程序。
2、调试过程注意观察标志位的变化。

三、设计内容
1、设计一个能实现加,减,乘,除余计算的程序。
2、该程序接受从键盘输入的十六进制数,执行相应的计算后,计算结果以十六进制数输出。

四、设计思路
将键盘输入的表达式预放入一缓冲区中,然后从该缓冲区的第一个字符开始读取判断,当读取到一个有效的表达式时,对表达式进行相应的运算后,输出用十六进制数表示的运算结果;当表达式无效时,输出表达式“error(错误)”的信息或者是有效表达式 “JS<Expression>”的提示信息。程序流程图如图所示

五、报告要求
1、说明设计过程中所遇到的问题及解决过程,对问题进行分析。
2、说明上机过程中调试情况,步骤,调试过程所遇到的问题是如何解决的,对调试过程中的问题进行分析,对结果进行分析。
六、最终结果
执行时,需在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:
c:\masm>js 3+2

5
c:\masm>js 6*7

2A
c:\masm>js 10-4

6
c:\masm>js 12/3

4

实验二:代码转换程序
一、设计目的
1、解数制和编码的差异;
2、实现二进制、八进制,十六进制代码以及大小字母之间的转换。
二、设计内容
编程实现大小字母之间,二进制数和十六进制数之间以及十六进制数向十进制数

说一下我的思路
首先判断要进行的是什么运算 可以用CMP判断+ - * /
然后算出来要计算的这两个数的字串符大小第一个数以+-*/结束 第2个数以0结束 都可以用CMP判定
输入的是字串符形式的16进制吧?那么这两个数转换成16进制数 最好做个子程序随时调用
然后进行计算 最后再把数据转换成字串符 然后int21h 显示出来

写出来了 好累啊 我是新手 不对的地方请指正 不知道写的复杂不
输入格式61a+f5 小写 因为ax最大ffff 有些运算溢出

assume ds:data,cs:code,ss:stack

data segment
number db 0dh,0ah,"Please write down your number:",0dh,0ah,0dh,0ah,"$"
write db 50
db ?
db 50 dup(?)
nu1 db 0,0,0,0,0
nu2 db 0,0,0,0,0
nu3 db 0,0,0,0,0
nu4 db 0,0,0,0,0
prt db 0dh,0ah,0dh,0ah,0,0,0,0,0,0
data ends

stack segment stack
db 50 dup(0)
stack ends

code segment
start:
mov ax,data
mov ds,ax
lea dx,number
mov ah,9h
int 21h