计算
编写程序,计算表达式(a+b)/(c and d) +2,a,b,c,d均在数据段中定义好,分别是-5,14,7,11,结果存入变量RESULT中,再把结果用十进制数显示出来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 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:40 static/image/common/back.gif
assume cs:code,ds:data,ss:stack
data segment
为什么我编译的时候 c就不行 改成cc才编译成功。
怎么运行了 没有显示输出结果? sr5220 发表于 2012-5-27 00:29 static/image/common/back.gif
为什么我编译的时候 c就不行 改成cc才编译成功。
怎么运行了 没有显示输出结果?
我编译的时候用的是emu8086软件,没有报错,刚才用masm6.11试了下,c是不行,改CC可以成功,结果显示在左上角 编译后运行结果,截图保存到res.rar中了,可以自己看下,呵呵 fujian810 发表于 2012-5-27 16:38 static/image/common/back.gif
编译后运行结果,截图保存到res.rar中了,可以自己看下,呵呵
太感谢啦!!!
页:
[1]