主题:请各位大哥哥大姐姐帮我解这个题目.万分感谢!
mythbobo
[专家分:0] 发布于 2005-12-05 12:40:00
已定义了两个整数变量A和B,试编写程序完成下列功能:
(1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中;
(2)若两个数均为奇数,则将两数均加1后存回原变量;
(3)若两个数均为偶数,则两个变量均不改变.
回复列表 (共6个回复)
沙发
erping [专家分:3660] 发布于 2005-12-05 13:29:00
.model tiny
.code
org 100H
_main:
jmp _start
A dw 0
B dw 1
_start:
xor ax, ax
mov bx, B ;保存另一个数
test A, 0001H
jnz _1
inc ax
mov bx, A ;同上
test B, 0001H
jz _exit ;没有奇数
_1: ;至少有一个为奇数
test bx, 0001H ;判断另一个数
jnz _2
or ax, ax
jz _exit
mov ax, B
mov B, bx ;偶数保存到 B 中
mov A, ax
jmp _exit
_2: ;两个都是奇数
inc A
inc B
_exit:
mov ax, 4C00H
int 21H
end _main
板凳
潇逍25825 [专家分:130] 发布于 2005-12-05 13:29:00
设置一个检测奇偶数体;可用左,右移实现。
再设三个jmp分别转阁下三个问题即可。
由于时间苍催不具体写了。[em1]
3 楼
潇逍25825 [专家分:130] 发布于 2005-12-05 13:32:00
一楼写的不错!
4 楼
潇逍25825 [专家分:130] 发布于 2005-12-05 14:28:00
大家注意一下,一楼写的不错,但是不能直接编译,我整理了一下,楼主
有兴趣的话,编译一下,现在是两个奇数,运行结果为:0C 00 0E 00
分别对11,13加了1;再换两种情况看看。都可以!!!
data segment
a dw 11
b dw 13
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov bx,b
xor ax,ax
test a,0001h
jnz l1
inc ax
mov bx,a
test b,0001h
jz exit
l1: test bx,0001h
jnz l2
or ax,ax
jz exit
mov ax,b
mov b,bx
mov a,ax
jmp exit
l2: inc a
inc b
exit: mov ax,4ch
int 21
code ends
end start
5 楼
erping [专家分:3660] 发布于 2005-12-05 14:51:00
注意
我使用的汇编器是 masm 6.15.8803(我只有这个)
连接器是 tc 中的 tlink.exe
好象要成功汇编 masm 版本必须在 6.0 以上
楼上交个朋友.[em11]
6 楼
潇逍25825 [专家分:130] 发布于 2005-12-05 20:12:00
失敬!!
我用的是masm5.
我来回复