回 帖 发 新 帖 刷新版面

主题:二-十六进制转换,有错误

[em19][em19][em19]

初学汇编,编了个小小的程序,有错误,但我不知道怎样调试,望高手指点。代码如下:

data segment
msg1 db 'er jin zhi shu :1111 0000 1111 0000B'0dh,0ah,'$'
msg2 db 'dui ying shi liu jin zhi shi :'
data ends
code segment

assume ds:data,cs:code
start:  mov ax,data
        mov ds,ax
         
        lea ax,msg1
        mov ds,09h
        int 21h
        lea ax,msg2
        mov ds,09h
        int 21h
        
        mov bx 1111000011110000B
        mov ch,4
L1:     mov cl,4
        rol bx,cl
        mov al,bl
        and al,0fh
        add al,30h
        cmp al,3ah
        JB print
        add al,07h
 print: mov ah,02h
        mov dl,al
        int 21h
        dec ch
        jnz L1
        
        mov ah,4ch
        int 21h
code ends
      end  start
另外提问几点:
             1.在masm中编写的程序,编译(生成exe)不能通过时该怎样调试?
             2.程序编译不能通过时, 会提示出错信息,但信息上给出的时出错地址,该怎样解决(怎么知道这个地址)?
             3.对于上面的程序规范问题望大家指教。

回复列表 (共4个回复)

沙发

用一个合适的 文本编辑器,推荐 editplus
编译无法通过,出错信息显示的行数,如:
ame1.asm(6) : error A2006: undefined symbol : DGROUP
;(6)表示出错的地方,在.asm文件的第 6 行
  
编辑源文件时editplus会显示行数,从而方便你修改错误


一些书写错误:
 'dui ying shi liu jin zhi shi :'
 'dui ying shi liu jin zhi shi :','$'

'er jin zhi shu :1111 0000 1111 0000B'0dh,0ah,'$'
'er jin zhi shu :1111 0000 1111 0000B',0dh,0ah,'$'

     mov ds,09h
/////mov dx,09h

    mov bx 1111000011110000B
////mov bx, 1111000011110000B

板凳

谢谢了,我把程序改正后运行几次,语法上没有错误了,但结果显示不出来,望再指教!

3 楼

应使用 debug调试程序,查处错误

4 楼


data segment
msg db 'er jin zhi shu :1111 0000 1111 0000B',0dh,0ah,'dui ying shi liu jin zhi shi :','$'
data ends
code segment

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

        ;mov ax,seg msg
        ;mov ds,ax
        ;mov dx,offset msg
        ;mov ah,09h
        ;int 21h
        
        mov bx,1111000011110000b
        mov cx,4
L1:     push cx
        mov cl,4
        rol bx,cl
        pop cx
        mov al,bl
        and al,0fh
        add al,30h
        cmp al,3ah
        jb  print
        add al,07h
print:  mov ah,02h
        mov dl,al
        int 21h
        loop L1
        
        mov ah,4ch
        int 21h
code ends
      end  start

我来回复

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