. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  最新捷报`~`(附实验10.1,10.2,10.3,课程设计1)  [待解决] 回复[ 28次 ]   点击[ 1602次 ]  
101319007
[帖 主]   [ 发表时间:2008-02-20 15:21 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2007-08-07 13:15
今天是学汇编的第5天(中间空了2天做JAVA去了),已成功突破第10章,速度越来越慢了.附上实验10.1,10.2,10.3和课程设计1代码,多多指教~!
实验10.1
assume cs:code,ds:data,ss:stack
data segment
  db 'Welcome to masm!',0
data ends

stack segment
  dw 6 dup (0)
stack ends

code segment
start:mov ax,data
      mov ds,ax
      mov ax,stack
      mov ss,ax
      mov sp,12
      mov dh,10
      mov dl,6
      mov cl,01110100b
      mov si,0
      call show_str

      mov ax,4c00h
      int 21h

show_str:push dx   ;dh行号 dl列号 cl 颜色
         push cx
         push si
         push ax
         push di
         mov ax,0b800h
         mov es,ax
         mov al,160
         mul dh
         mov di,ax
         mov al,2
         mul dl
         add di,ax
         mov dl,cl
         mov ch,0
show_next:mov cl,[si]
         jcxz show_end
         mov al,[si]
         mov es:[di],al
         mov es:[di+1],dl
         inc si
         add di,2
         jmp short show_next
show_end:pop di
         pop ax
         pop si
         pop cx
         pop dx
         ret     
code ends

end start

实验10.2
assume cs:code,ss:stack
stack segment
dw 8 dup (0)
stack ends

code segment
start:mov ax,stack
      mov ss,ax
      mov sp,16
      mov ax,4240h
      mov dx,0fh
      mov cx,0ah
      call divdw
mov ax,4c00h
int 21h
divdw:push bx
      push ax
      mov ax,dx
      mov dx,0
      div cx
      mov bx,ax
      pop ax
      div cx
      mov cx,dx
      mov dx,bx
      pop bx
      ret
code ends
end start

实验10.3
assume cs:code,ds:data,ss:stack

data segment
dw 59542
data ends

data2 segment
db 10 dup (0)
data2 ends

stack segment
dw 12 dup (0)
stack ends

code segment
start:mov ax,data
      mov es,ax
      mov ax,data2
      mov ds,ax
      mov ax,stack
      mov ss,ax
      mov sp,24
      mov si,0
      mov di,0
      mov dh,2
      mov dl,2
      mov cl,01110100b
      call dcot
      call show_str
   
mov ax,4c00h
int 21h

dcot:push ax
     push bx
     push cx
     push dx
     push si
     push di
     mov ax,es:[di]
     mov bx,0ah
     mov ch,0
     mov dx,0
dcot_next:mov dx,0
     div bx
     mov cx,ax
     add dl,30h
     push dx
     inc si
     jcxz dcot_end
     jmp dcot_next
     
dcot_end:mov cx,si
     sub si,si
   n:pop ax
     mov [si],al
     inc si
     loop n
     pop di
     pop si
     pop dx
     pop cx
     pop bx
     pop ax
     ret

show_str:push dx   ;dh行号 dl列号 cl 颜色
         push cx
         push si
         push ax
         push di
         mov ax,0b800h
         mov es,ax
         mov al,160
         mul dh
         mov di,ax
         mov al,2
         mul dl
         add di,ax
         mov dl,cl
         mov ch,0
show_next:mov cl,[si]
         jcxz show_end
         mov al,[si]
         mov es:[di],al
         mov es:[di+1],dl
         inc si
         add di,2
         jmp short show_next
show_end:pop di
         pop ax
         pop si
         pop cx
         pop dx
         ret     

code ends
end start

课程设计1
assume cs:code,ds:data,ss:stack

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 1152,14430,15257,17800

data ends

table segment
db 10 dup (0)
table ends

stack segment
dw 30 dup (0)
stack ends

code segment
start:mov ax,data
      mov ds,ax
      mov ax,table
      mov es,ax
      mov cx,21
      mov bx,0
      mov si,0
      mov di,0
      mov bp,0
      mov ax,stack
      mov ss,ax
      mov sp,40
 next:push cx
      mov cx,4
      mov di,0
      add di,bx
   s1:mov ax,[di]
      mov es:[si],ax
      add di,1
      add si,1
      loop s1
      mov al,0
      mov es:[si],al
      mov dl,16
      call adz

      mov di,84
      add di,bx
      mov ax,[di]
      mov dx,[di+2]
      call far ptr dtoc
      push dx
      mov dl,24
      call adz

      mov di,168
      add di,bp
      mov cx,[di]
      call dcot
      mov dl,35
      call adz

      pop dx
      div cx
      mov [di],ax
      call dcot
      mov dl,45
      call adz

      add bx,4
      add bp,2
      pop cx
      loop next

      mov ax,4c00h
      int 21h
     
 adz:push cx
     push dx
     push bx
     push es
     push ax

     mov ax,bx
     mov bl,4
     div bl
     mov cl,01110100b
     mov dh,al
     mov si,0
     call far ptr show_str
     pop ax
     pop bx
     mov es,bx
     pop bx
     pop dx
     pop cx
     ret

dcot:push ax
     push bx
     push cx
     push dx
     push di
     push si
     mov ax,[di]
     mov bx,0ah
     mov ch,0
     mov dx,0
     ;mov di,0
dcot_next:mov dx,0
     div bx
     mov cx,ax
     add dl,30h
     push dx
     inc si
     jcxz dcot_end
     jmp dcot_next
     
dcot_end:mov cx,si
     sub si,si
dcot_n:pop ax
     mov es:[si],al
     inc si
     loop dcot_n
     mov al,0
     mov es:[si],al
     pop si
     pop di
     pop dx
     pop cx
     pop bx
     pop ax
     ret

 dtoc:push ax
      push bx
      push cx
      push dx
      push di
      push si
      mov ax,[di]
      mov dx,[di+2]  
      ;mov di,0
dtoc_next:mov cx,0ah   
      call divdw
      mov bx,30h
      add cx,bx
      push cx
      inc si
      mov bx,ax
      add bx,dx
      mov cx,bx
      jcxz dtoc_end
      jmp short dtoc_next
dtoc_end:mov cx,si
       sub si,si
dtoc_n:pop ax
       mov es:[si],al
       inc si
       loop dtoc_n
      mov al,0
      mov es:[si],al
      pop si
      pop di
      pop dx
      pop cx
      pop bx
      pop ax
      retf

divdw:push bx
      push ax
      mov ax,dx
      mov dx,0
      div cx
      mov bx,ax
      pop ax
      div cx
      mov cx,dx
      mov dx,bx
      pop bx
      ret

show_str:push dx   ;dh行号 dl列号 cl 颜色
         push cx
         push si
         push ax
         push di
         push ds
         mov ax,table
         mov ds,ax
         mov ax,0b800h
         mov es,ax
         mov al,160
         mul dh
         mov di,ax
         mov al,2
         mul dl
         add di,ax
         mov dl,cl
         mov ch,0
show_next:mov cl,[si]
         jcxz show_end
         mov al,[si]
         mov es:[di],al
         mov es:[di+1],dl
         inc si
         add di,2
         jmp short show_next
show_end:pop di
         mov ds,di
         pop di
         pop ax
         pop si
         pop cx
         pop dx
         retf    
code ends
end start
app
[第1楼]   [ 回复时间:2008-02-20 21:55 ]   [引用]   [回复]   [ top ] 
荣誉值:15
信誉值:2
注册日期:2007-12-05 14:06
楼主很厉害啊,3天就过第十章了,介绍下经验吧
101319007
[第2楼]   [ 回复时间:2008-02-20 22:43 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2007-08-07 13:15
楼上的误会了,是5天过了第十章,从看汇编到现在有7天了,只是中间空了两天
younger870
[第3楼]   [ 回复时间:2008-02-24 15:28 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-12-14 19:53
高手!!!!!
101319007
[第4楼]   [ 回复时间:2008-02-27 13:03 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2007-08-07 13:15
要说经验的话,只能说是叔叔有练过~~!
xiaochong
[第5楼]   [ 回复时间:2008-02-27 13:13 ]   [引用]   [回复]   [ top ] 
荣誉值:45
信誉值:0
注册日期:2007-05-05 09:01
要说经验的话,只能说是叔叔有练过~~!
------------------
回复:汗~!
101319007
[第6楼]   [ 回复时间:2008-02-27 15:25 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:0
注册日期:2007-08-07 13:15
擦~!
gagayt
[第7楼]   [ 回复时间:2008-04-23 11:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-08-08 16:57
这货,不谦逊啊~~
pgd5776
[第8楼]   [ 回复时间:2008-04-23 12:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-04-11 12:32
致敬!
caoheqian
[第9楼]   [ 回复时间:2008-04-24 20:38 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53
吹牛,第5月还差不多.你以为你是神童啊.
nokiahc
[第10楼]   [ 回复时间:2008-05-18 22:33 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:10
注册日期:2008-05-18 20:29
ls见识不够啊,这很正常,比lz快的都多的是了,我比lz慢一点
likui
[第11楼]   [ 回复时间:2008-06-06 14:57 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2008-05-28 16:43
5天的话是可能的,一种可能就是楼主水平很高,二就是以前学过,哈哈
不管怎么说大家继续努力吧
xiaomao272
[第12楼]   [ 回复时间:2008-07-04 19:51 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-12 09:24
实验2不对自己看看取植范围 
把AX ,FFFF
DX ,FFFF
CX,2
带进去根本不对
assemblyshang
[第13楼]   [ 回复时间:2008-07-06 22:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-21 17:39
为什么你们写代码都写那么复杂
其实编程之道是简洁
deepblue
[第14楼]   [ 回复时间:2008-07-07 09:48 ]   [引用]   [回复]   [ top ] 
荣誉值:56
信誉值:0
注册日期:2008-01-19 14:51
我认为以汇编起步时,编程练的是感受,磨得经历,培养的是坚持。 

学汇编是对于编程任务我是以完成功能为最先要点,至于实现是否简单逻辑是不是精炼,之于功能的正确性来说,我是保证后者的,只有包成后者,才能修正前者。

所以编程最重要的是正确的完成功能满足应用,而不在算法,要说算法重要,也是以功能和应用为前提的,没有这个前提,算法等于空谈。

以上是我的观点我
dpjf
[第15楼]   [ 回复时间:2008-07-10 17:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-10-17 21:06
楼上的观点,我略有同感。
outlaw
[第16楼]   [ 回复时间:2008-07-11 01:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:6
注册日期:2008-06-07 10:57
明天能搞定第十章,到时再讨论这个程序。

大概累计下来已经看了有十三天左右了,比楼主五天攻克十章慢多了。
dosjj
[第17楼]   [ 回复时间:2008-08-01 14:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-21 14:24
楼主讲了,他之前有学过的,,,,
zzxjypm
[第18楼]   [ 回复时间:2008-08-04 10:52 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-07-03 16:13
一定是有學過,並且有其他語言的基礎學習會更快的,理解能力也就更強。。。
breakan
[第19楼]   [ 回复时间:2008-11-10 19:26 ]   [引用]   [回复]   [ top ] 
荣誉值:4
信誉值:14
注册日期:2008-09-03 11:12
不是吧,我中间也有空了一星期没学,但我可用了2个月才到第10章呀...
zcouyangpeng
[第20楼]   [ 回复时间:2008-11-11 19:30 ]   [引用]   [回复]   [ top ] 
荣誉值:35
信誉值:44
注册日期:2008-09-03 21:36
show_end:pop di 
         pop ax 
         pop si 
         pop cx 
         pop dx 
         ret      

改为:show_end:  ret 10
sb123
[第21楼]   [ 回复时间:2008-12-20 23:49 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-06 07:47
你傻的啊~~~看看你自已的注册时间 6个月吧 说谎话之前别忘记把尾巴收好啊 别在这里侮辱我们的智慧啊!!!!!
niwho
[第22楼]   [ 回复时间:2008-12-29 15:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-23 13:37
不在乎花了多少时间,最重要的是真的学通了。
你花一天就理解了,而我花了一年,这没什么可卑的
nmwwf
[第23楼]   [ 回复时间:2008-12-31 17:19 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-09-20 00:36
天才呀
也许是自己太笨了,这章的试验搞了1个多星期还没过关
simile12
[第24楼]   [ 回复时间:2009-01-05 18:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-12-11 21:37
刚学。。呵呵,,。   
  只懂一点。 。
xiaosong
[第25楼]   [ 回复时间:2009-03-14 00:23 ]   [引用]   [回复]   [ top ] 
荣誉值:5
信誉值:3
注册日期:2009-03-05 20:41
我现在也是一个多星期 不到两个星期 第十章还差个课程设计  开过C C++ 数据结构的课 感觉学起来也不怎么不吃力 可能是有点基础的原因吧  不过第十章要掌握好可能还要多加练习
mengdewan
[第26楼]   [ 回复时间:2009-03-17 21:08 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:5
注册日期:2008-12-18 16:07
后面的有点跟不上啦
qizui
[第27楼]   [ 回复时间:2009-04-07 19:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-03-28 12:51
我学了7个月了才到第十章,是不是太慢了点啊
newboy007
[第28楼]   [ 回复时间:2009-08-19 11:12 ]   [引用]   [回复]   [ top ] 
荣誉值:1
信誉值:0
注册日期:2009-04-27 16:19
1975年的没显示!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved