回 帖 发 新 帖 刷新版面

主题:请各位大哥哥大姐姐帮我解这个题目.万分感谢!

已定义了两个整数变量A和B,试编写程序完成下列功能:
(1)若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中;
(2)若两个数均为奇数,则将两数均加1后存回原变量;
(3)若两个数均为偶数,则两个变量均不改变.

回复列表 (共6个回复)

沙发

.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

板凳

设置一个检测奇偶数体;可用左,右移实现。
再设三个jmp分别转阁下三个问题即可。
由于时间苍催不具体写了。[em1]

3 楼

一楼写的不错!

4 楼

大家注意一下,一楼写的不错,但是不能直接编译,我整理了一下,楼主
有兴趣的话,编译一下,现在是两个奇数,运行结果为: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 楼

注意
我使用的汇编器是 masm 6.15.8803(我只有这个)
连接器是 tc 中的 tlink.exe

好象要成功汇编 masm 版本必须在 6.0 以上

楼上交个朋友.[em11]

6 楼

失敬!!
我用的是masm5.

我来回复

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