づ花败相惜╮ 发表于 2012-5-4 18:11:56

刚刚学汇编,写的实验7,求高手看下有没有什么不好的习惯没?

本人刚刚学习汇编,写的实验7的代码
英语一窍不通,标号都是S S1 S2的 不要见怪哦!
标号应该怎么命名比较好 求解!
求高手看下有没有错误!有没有什么不好的习惯没!
有没有哪里不规范没!谢谢了!
代码如下:


assume cs:cta,ds:data,es:table
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
cta segment
she:mov ax,data
   mov ds,ax
   mov ax,table
   mov es,ax
   mov bx,0
   mov si,0
   mov di,0
   mov bp,0
   mov cx,21
s :mov al,
   mov es:,al
   mov al,
   mov es:,al
   mov al,
   mov es:,al
   mov al,
   mov es:,al
   mov ax,54h
   mov es:,ax
   mov ax,56h
   mov es:,ax
   mov ax,0a8h
   mov es:,ax
   mov ax,54h
   mov dx,56h
   div word ptr ds:0a8h
   mov es:,ax
   add bx,16
   add si,4
   add di,2
   loop s
   mov ax,4c00h
   int 21h
   cta ends
   end she

leonold007 发表于 2012-5-4 18:11:57

分段 注释一下,程序多的时候标号含义就比较重要了

づ花败相惜╮ 发表于 2012-5-4 18:51:27

我在XP里写的在显存显示东西的代码在XP看有效果,在WIN7的运行看不到效果为什么!

NGtailang 发表于 2012-5-4 21:22:02

分段。分段。一大堆凑一起看的真不舒服。

水滴男孩 发表于 2012-5-4 22:24:53

照抄小甲鱼老师视频里的代码的吧?

我是桃川人 发表于 2012-5-5 10:05:45

づ花败相惜╮ 发表于 2012-5-4 18:51 static/image/common/back.gif
我在XP里写的在显存显示东西的代码在XP看有效果,在WIN7的运行看不到效果为什么!

直接用debug 写d800:0 32 2,能显示吗?
我这台电脑第一次运行show_str也是不能显示,但直接用debug写一个能显示后,在运行show_str就能显示了。


希望对你有帮助。

九墓 发表于 2012-5-5 10:10:08

花花。。。。。。。。。。。。。。

群益电脑 发表于 2012-5-6 21:57:09

可以优化代码的,比如单个字节传送,可以改为双字节
页: [1]
查看完整版本: 刚刚学汇编,写的实验7,求高手看下有没有什么不好的习惯没?