sr5220 发表于 2012-5-26 21:30:37

计算

编写程序,计算表达式(a+b)/(c and d) +2,a,b,c,d均在数据段中定义好,分别是-5,14,7,11,结果存入变量RESULT中,再把结果用十进制数显示出来

fujian810 发表于 2012-5-26 21:30:38

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

data segment
    a       dw-5
    b       dw14
    c       dw7
    d       dw11
    resultdw?   
data ends


stack segment
    dw16dup (0)
stack ends

code segment

start:mov ax,data
      mov ds,ax
      mov ax,stack
      mov ss,ax
      mov sp,20h
      
      mov ax,ds:a
      mov bx,ds:b
      add ax,bx      ;求和
      
      mov cx,ds:c
      mov dx,ds:d
      and cx,dx      ;求与运算
      
      mov dx,0
      div cx         ;除法
      
      add ax,2
      mov ds:result,ax
      mov cx,0          ;累加
      
    s1: mov dx,0
      mov bx,10
      div bx
      or dx,2c30h       ;2c为高位,字体颜色;30h将数值转换为ASCII码
      push dx   
      inc cx
      cmp ax,0
      jne s1            ;获得10进制序列
      
      mov ax,0b800h
      mov es,ax
      mov si,0
    s2: pop es:
      add si,2
      loop s2
      
      mov ax,4c00h
      int 21h
            
code ends
    end start

fujian810 发表于 2012-5-26 23:39:46

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

data segment
    a       dw-5
    b       dw14
    c       dw7
    d       dw11
    resultdw?   
data ends


stack segment
    dw16dup (0)
stack ends

code segment

start:mov ax,data
      mov ds,ax
      mov ax,stack
      mov ss,ax
      mov sp,20h
      
      mov ax,ds:a
      mov bx,ds:b
      add ax,bx      ;求和
      
      mov cx,ds:c
      mov dx,ds:d
      and cx,dx      ;求与运算
      
      mov dx,0
      div cx         ;除法
      
      add ax,2
      mov ds:result,ax
      mov cx,0          ;累加
      
    s1: mov dx,0
      mov bx,10
      div bx
      or dx,2c30h       ;2c为高位,字体颜色;30h将数值转换为ASCII码
      push dx   
      inc cx
      cmp ax,0
      jne s1            ;获得10进制序列
      
      mov ax,0b800h
      mov es,ax
      mov si,0
    s2: pop es:
      add si,2
      loop s2
      
      mov ax,4c00h
      int 21h
            
code ends
    end start

sr5220 发表于 2012-5-27 00:29:42

fujian810 发表于 2012-5-26 23:40 static/image/common/back.gif
assume cs:code,ds:data,ss:stack

data segment


为什么我编译的时候 c就不行 改成cc才编译成功。
怎么运行了 没有显示输出结果?

fujian810 发表于 2012-5-27 16:35:43

sr5220 发表于 2012-5-27 00:29 static/image/common/back.gif
为什么我编译的时候 c就不行 改成cc才编译成功。
怎么运行了 没有显示输出结果?

我编译的时候用的是emu8086软件,没有报错,刚才用masm6.11试了下,c是不行,改CC可以成功,结果显示在左上角

fujian810 发表于 2012-5-27 16:38:04

编译后运行结果,截图保存到res.rar中了,可以自己看下,呵呵

sr5220 发表于 2012-5-27 22:17:05

fujian810 发表于 2012-5-27 16:38 static/image/common/back.gif
编译后运行结果,截图保存到res.rar中了,可以自己看下,呵呵

太感谢啦!!!
页: [1]
查看完整版本: 计算