回 帖 发 新 帖 刷新版面

主题:[讨论]a+b-2*(a and b)

初学汇编,连一个简单的程序都没写出来
大家能不能帮忙?
a+b-2*(a and b)
要求输出结果。
我是这样写的,但输不出结果。

data segment
        a db 3h 
        b db 4h
     
data ends

code segment
        assume cs:code,ds:data
start:  mov ax,data
        mov ds,ax

        mov dl,a
        mov al,dl
       
        and al,b
        mov cl,1
        sal al,cl
      
        add dl,b
        sub dl,al
   

        mov ah,2
        int 21h
        mov ax,4c00h
        int 21h
code ends
        end start

错在哪里?求救

回复列表 (共1个回复)

沙发

周亮同学
你犯了一个非常低级的错误

你想一下,这样输出的是什么?
对,是ASCII码值,而不会输出你想要的字符来

你应该对dl加30H,这样才行

代码:
data segment
        a db 3h 
        b db 4h
     
data ends

code segment
        assume cs:code,ds:data
start:  mov ax,data
        mov ds,ax
    
    mov di,offset a
    mov si,offset b

        mov dl,[di]
        mov al,dl
       
        and al,[si]
        mov cl,1
        sal al,cl
      
        add dl,[si]
        sub dl,al
   
        add dl,30h

        mov ah,2
        int 21h
        mov ax,4c00h
        int 21h
code ends
        end start

我来回复

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