| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 926 人关注过本帖
标题:仅语法错误,望帮忙调试一下
取消只看楼主 加入收藏
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
结帖率:97.22%
收藏
已结贴  问题点数:100 回复次数:9 
仅语法错误,望帮忙调试一下
程序代码:
assume cs:code

data segment
    db 'Welcome to masm!',0
data ends

code segment
    start: mov dh,8
           mov dl,3
           mov cl,2
           mov ax,data
           mov ds,ax
           mov si,0
           call show_str
          
           mov ax,4c00h
           int 21h
          
     show_str:
               push si                      ;si记录字符串读取地址
               mov si,0
               push dx                      ;dh记录行地址
                                            ;dl记录列数地址
               push cx                      ;ch记录读取字符
               push ax                      ;al记录字符属性
               mov  al,cl
               mov  cl,0
              
          print: mov ch,ds:[si]                 ;如果ch为0,则跳出循环
          jcxz out
                 mov byte ptr 0b800h:[dh][dl],ds:[si]  
                 inc si
                 mov 0b800h:[dh][dl].1,al
                 add dl,2
               jmp short print
      
          out: pop ax      
               pop cx
               pop dx
               pop si
             
               ret         
code ends

end start
如能改正错误分全部奉上,顺便问一下什么汇编编辑器最适于编写,我用的Masm for Windows 集成实验环境 2012.5结果发现版权比windows都封闭的十来倍,连错误中的英文都说要注册账户才能进行翻译,版面也稍有麻烦,qq1085250220如果有的话希望能发给我一个较实用的编辑器,一个问题50分,正好发发福利...
搜索更多相关主题的帖子: color 
2013-02-21 20:00
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
z版又来打劫啊...还有个问题能不能帮忙解决下,100分就送你了(再说我也收不回来了...)

I have not failed completely
2013-02-21 20:50
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
white space?

I have not failed completely
2013-02-21 20:53
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
以下是引用zklhp在2013-2-21 20:51:34的发言:

 
assume cs:code
 
data segment
    db 'Welcome to masm!',0
data ends
 
code segment
    start: mov dh,8
           mov dl,3
           mov cl,2
           mov ax,data
           mov ds,ax
           mov ax, 0b800h
           mov es, ax
           mov si,0
           call show_str
           
           mov ax,4c00h
           int 21h
           
     show_str:
               push si                      ;si记录字符串读取地址
               mov si,0
               push dx                      ;dh记录行地址
                                            ;dl记录列数地址
               push cx                      ;ch记录读取字符
               push ax                      ;al记录字符属性
               mov  al,cl
               mov  cl,0
 
          print: mov ch,ds:[si]                 ;如果ch为0,则跳出循环
          jcxz _out
                 push cx
                 xor di, di
                 mov cl, dl
                 add di, cx
                 add cl, dh
                 add di, cx
                 mov ch, ds:[si]
                 mov byte ptr es:[di],ch
                 inc si
                 mov ch, ds:[si]
                 mov es:[di+1],ch
                 add dl,2
                 pop cx
               jmp short print
      
          _out: pop ax      
               pop cx
               pop dx
               pop si
              
               ret         
code ends
 
end start


其实改了也没用 逻辑明显是错的 ds:[dh][dl] 你以为这个东西和C语言里面的一样 其实 这个就相当于 ds:[dh+dl] 和C里面的完全不同

还有 你这个代码格式也不行 好多white space
我是要dh+dl,只是想换着格式玩一玩...初学汇编,还有很多不太会的地方,不要见怪啊
jcxz _out加了个下划线怎么就能通过了呢?能不能说下缘由,还有
程序代码:
 show_str:
               push si                      ;si记录字符串读取地址
               mov si,0
               push dx                      ;dh记录行地址
                                            ;dl记录列数地址
               push cx                      ;ch记录读取字符
               push ax                      ;al记录字符属性
               mov  ax,es
               mov  es,ax
               mov  al,cl
               mov  cl,0
              
          print: mov ch,ds:[si]                 ;如果ch为0,则跳出循环
          jcxz _out
                 mov es:[dh+dl],ch
                 inc si
                 mov es:[dh+dl].1,al
                 add dl,2
               jmp short print

 mov es:[dh+dl],ch
还是出了语法错误,怎么会这样呢?
我觉得你可能没太明白我程序的意思,b800那段空间是彩字,高八位存属性,低八位存字符值,不是直接读取所有字符,当然如果我理解错了你理解错了也不要k我,新手新手...
(话说我发了一百分不多问几个问题不也太亏了,嘻嘻...)

I have not failed completely
2013-02-21 21:20
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
求解答啊伟大的z版快快回来,我用铁头功把砖全砸了

I have not failed completely
2013-02-21 21:31
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
刚刚找了金山奶爸,还剩下一个问题,为什么out前面加了下划线就过了呢?告诉了大大的有赏滴干活...

I have not failed completely
2013-02-21 21:51
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
ok,yes我过了,so happy!分给你了

I have not failed completely
2013-02-21 22:15
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
程序我自己又改了一下...

I have not failed completely
2013-02-22 20:15
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
对啊,汇编好像没什么特别多的书,就看那本了
程序代码:
assume cs:code , es:data , ss:stack

data segment

  db 'welcome to masm!'

data ends

stack segment

  dw 8 dup (0)

code segment

  start:  mov ax,0b800h
          mov ds,ax
        
          mov ax,data
          mov es,ax
     
          mov bx,0
          mov si,40h
          mov cx,16
          mov ah,00000010b
          call print
          mov ah,00100100b
          call print
          mov ah,01111001b
          call print
            
           mov ax,4c00h
           int 21h

        print:  push bx
                push si
                push cx
            
          go:   mov al,es:[bx]
                mov ds:0f00h[si],al
                mov byte ptr ds:0f00h[si+1],ah
                add si,2
                inc bx
         loop go
              pop cx
              pop si
              add si,00A0h
              pop bx
              ret
code ends

end start


I have not failed completely
2013-02-22 20:39
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
(⊙v⊙)嗯复习了下明白了

I have not failed completely
2013-02-22 23:41
快速回复:仅语法错误,望帮忙调试一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038669 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved