回 帖 发 新 帖 刷新版面

主题:用汇编语言编写一个无符号一位数的加减乘除,例如输入2+3,然后输出结果5,请大家教教我啊

[em10]

回复列表 (共3个回复)

沙发

晕就晕吧,晕完了你就不用做了,你不适合先做汇编,应先苏格拉底运动上两年.

板凳


[em10]无符号一位数。。。本来还想说def又再打击别人,现在我也有点受不了了。。。
不过打击完后还是要给答案的!
搞两个寄存器装两个运算数,然后运算,然后将结果放入你想放入的地方,要在显示器输出的话现给答案加30,再输出

3 楼

; 楼主的问题基本可以解决,但是注意结果只能是一位数。既然是作业我也就不多写了,还是的自己多练练 :)


stack segment para stack
stack_area      dw      100h dup(?)
stack_btm       equ     $ - stack_area
stack ends

data segment

data ends

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

main  proc far
  mov ax,stack
  mov ss,ax
  mov sp,stack_btm
  mov ax,data
  mov ds,ax
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  mov ah,1h
  int 21h
  mov dl,al
  
  mov ah,1h
  int 21h
  mov cl,al
  
  mov ah,1h
  int 21h
  and ax,0fh
  and dx,0fh
  
  cmp cl,'+'
  jne xx1
  
  add dl,al
  jmp print1
xx1:
  cmp cl,'-'
  jne xx2
  sub dl,al
  jmp print1
xx2:
  cmp cl,'*'
  jne xx3
  mul dl
  mov dl,al
  jmp print1
xx3:
  cmp cl,'/'
  jne exit
  div dl
  mov dl,al
  jmp print1

print1:
  push dx
  mov ah,2h
  mov dl,'='
  int 21h
  pop dx
  or dl,30h
  mov ah,2h
  int 21h
  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

exit:  mov ax,4c00h 
  int 21h  

main  endp
code  ends
  end main

我来回复

您尚未登录,请登录后再回复。点此登录或注册