哪位高手帮帮忙,用汇编语言写个小程序

王朝知道·作者佚名  2010-09-10
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

用汇编语言设计一个四则运算程序,计算两个个位数的和、差、商和积,其中四则运算分别用软中断实现,中断号码分别为60h,61h,62h,63h

參考答案:

如果没人回答,先别删,我双休日帮你答,这几天要考试……

------------------------------------------------------

真是抱歉,我还是比较忙……下星期整个星期考试……

先帮你写了加法的,我有时间才把剩下的都写上吧。验证过的。其实减法、乘除法道理都相同的。

因为想要写得比较好看,所以比较长,输入输出都写了。

DATA SEGMENT

ANS DB 10,13,'Answer is:$'

MSG1 DB 10,13,'Input number 1:$'

MSG2 DB 10,13,'Input number 2:$'

NUM1 DW ?

NUM2 DW ? ;我用字而不是字节,比较好处理

DATA ENDS

STACK SEGMENT

DB 32 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME DS:DATA,SS:STACK,CS:CODE,ES:DATA

MAIN: MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV AX,STACK

MOV SS,AX

INTDEF: STI ;设置所有的中断向量

PUSH DS

MOV AX,SEG ADDPROC

MOV DS,AX

MOV AX,2560H

MOV DX,OFFSET ADDPROC

INT 21H

MOV AX,2561H

MOV DX,OFFSET SUBPROC

INT 21H

MOV AX,2562H

MOV DX,OFFSET MULPROC

INT 21H

MOV AX,2563H

MOV DX,OFFSET DIVPROC

INT 21H

POP DS

START: CALL INPUT

INT 60H

;INT 61H

;INT 62H

;INT 63H

MOV AH,07H

INT 21H

MOV AH,07H

MOV AH,4CH

INT 21H

INPUT: MOV AH,09H ;输入部分,原理很简单相信你懂。

MOV DX,OFFSET MSG1

INT 21H

MOV AH,01H

INT 21H

SUB AL,30H

MOV AH,0

MOV [NUM1],AX

MOV AH,09H

MOV DX,OFFSET MSG2

INT 21H

MOV AH,01H

INT 21H

SUB AL,30H

MOV AH,0

MOV [NUM2],AX

RET

ADDPROC: CLI

PUSH AX

PUSH DX

PUSH CX

MOV AH,09H

MOV DX,OFFSET ANS

INT 21H

MOV AX,[NUM1]

ADD AX,[NUM2]

AAA ;调整之后AH、AL分别是高低位

MOV DX,AX

PUSH DX

OR DH,30H

MOV DL,DH

MOV AH,02H

INT 21H

POP DX

OR DL,30H

MOV AH,02H

INT 21H

POP CX

POP DX

POP AX

STI

IRET

SUBPROC:

IRET

MULPROC:

IRET

DIVPROC:

IRET

CODE ENDS

END MAIN

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航