鱼C论坛

 找回密码
 立即注册
查看: 3289|回复: 17

如何21年总收入放入ds:si21次循环

[复制链接]
发表于 2012-11-14 14:13:30 | 显示全部楼层 |阅读模式
1鱼币
assume cs:codesg,ds:datasg,es:table,ss:stack
table segment
  db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  db '1984','1985','1986','1987','1988','1989','1990','1991','1991'
  db '1993','1994','1995'
  ;以上是表示21年的21个字符串
  
  dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  dd 345980,590827,803530,1183000,1843000,2795000,3753000,4649000,5937000
  ;以上是表示21年公司总收入的21个dword型数据
  
  dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  dw 11542,14430,15257,17800
  ;以上是表示21年公司雇员人数的21个word型数据
  
  dw 5,3,42,104,85,210,123,111,105,125,140,136,153,211,199,209,224,239
  dw 260,304,333
  ;以上是表示21年公司人均收入
  
  
table ends
datasg segment
  
  db 1000 dup (0)
  
datasg ends
stack segment
  db 100 dup (0)

stack ends
codesg segment
  start:
         
            mov ax,datasg
   mov ds,ax
   
      mov ax,table
   mov es,ax
   mov si,0
   mov bp,0
   
   mov ax,stack
   mov ss,ax
   mov sp,100
   
   mov cx,21
s7:  call dtoc
   add bp,16               ;bp加16换行
      add si,4                ;si+4
   loop s7
   
            mov ax,4c00h
            int 21h   

  
dtoc: push dx
       push cx
    push si
    push bx
    push ax ;cx、si入栈

s4:      
       mov ax,es:[si+54h]
       mov dx,es:[si+56h]
         

    mov bx,0
   
s1:  mov cx,10d
         push ax       ;ax值入栈
   
   mov ax,dx     ;dx值等于ax
   
   mov dx,0      ;dx为零
   
   div cx        ;除以cx
  
   mov cx,ax     ;商为零cx
   
   jcxz s2       ;cx为零转移到s2
   
   add dx,30h
   push dx
   
   inc bx
   
   jmp short s1
    s5:  pop ax
         mov cx,ax
   jcxz okay

  s6:  mov dx,0
   mov cx,10
     
   div cx
  
    mov cx,ax
   
    jcxz s2
   
    add dx,30h
    push dx
   
    inc bx
   
    jmp short s6
   
    s2:   add dx,30h          ;余数加30h放入dx
       push dx             ;dx入栈
    inc bx              ;bx记寻加1
   
    mov cx,bx           ;bx放入cx判断
   
   
    mov di,0            ;di等于0
s3:   pop ax              ;dx植出栈放入ax
         
    mov ds:[bp+di+05h],al   ;[bp+di+05h]=al
    add di,1               ;di加1
              
     loop s3                 ;loop 循环
         
    jmp short s5

okay: pop ax
          pop bx
          pop si
         pop cx
         pop dx
     
   
    ret
codesg ends
end start



入栈出栈放晕了, 帮我改改吧。  

最佳答案

查看完整内容

http://bbs.fishc.com/thread-21561-1-1.html 看我的这个.课程设计1,详细注释 呵呵,来抢分了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-14 14:13:31 | 显示全部楼层
本帖最后由 pediyzhi 于 2012-11-14 22:10 编辑

http://bbs.fishc.com/thread-21561-1-1.html
看我的这个.课程设计1,详细注释
呵呵,来抢分了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-14 14:14:51 | 显示全部楼层
这是课程设计1的题目, 有答案可以告诉下在哪啊。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-14 18:19:41 | 显示全部楼层
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'
;============================================================================
d2 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
   dd 456980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;============================================================================
d3 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
   dw 11542,14430,15257,17800
;============================================================================
d4 dw 20 dup (0)
data ends
;============================================================================
stack segment
dw 20 dup (0)
stack ends
;============================================================================
;============================================================================
code segment
;============================================================================

strat:      mov ax,data
            mov ds,ax
            mov ax,0b800h
            mov es,ax
            mov ax,stack
            mov ss,ax
            mov sp,20
            ;-----------------初始化寄存器
            mov bx,160
            mov si,0
            mov di,0
            ;-----------------DI指向显存
            mov bp,offset d2
            ;-----------------BP指向D2
            mov cx,21
;=============================================================================            
                        ;显示日期
zhuxh:      call riqi
            
            
;=============================================================================
                        ;显示收入
                        
            push di
            xor di,di
            add di,30
            call shouru
            pop di
            ;----------------------写人数间距加20
;=============================================================================
                        ;显示人数
            push di
            xor di,di
            add di,60
            call renshu
            pop di
            ;----------------------与平均娄间距加20

;=============================================================================
                        ;显示平均
            push di
            xor di,di
            add di,90            
            call pingjun                                                      
            call dtoc
            ;----------------------结果转ASCII码
            call show_str
            pop di
            ;----------------------显示
;=============================================================================
            add bx,160
            mov di,0
            add si,2
            add bp,4
            loop zhuxh
                     
            mov ah,01
            int 21h
            
            
            
;=========                ====================================================
;==============================================================================
;==========================显示show_str========================================
show_str:   
            push bp
            push cx
            mov bp,offset d4
xssj:       mov cl,ds:[bp]
            mov ch,0
            inc bp
            jcxz xswk
            mov es:[bx+di],cl
            inc di
            mov es:[bx+di],2
            inc di
            jmp xssj
xswk:       pop cx
            pop bp
            
            ret
;==============================================================================
;==========================转换DTOC============================================
dtoc:       push si
            push di
            push bp
            push cx
            push bx
            mov bx,10
            mov si,0
            ;-----------保存数据
d_hys:      mov bp,ax
            ;-----------转移L位
            mov ax,dx
            xor dx,dx
            ;-----------H转AX D清零
            div bx
            ;-----------H/10
            mov di,ax
            ;-----------H结果=DI
            mov ax,bp
            ;-----------L重赋给AX
            div bx
            ;-----------REG+L/10  DX=余娄  H结果=DI
            ;===========          L结果AX
            
            mov cx,bp
            jcxz d_wk            
            ;-----------余数为空jmp 到出栈
            add dx,30h
            push dx
            inc si
            xor dx,dx
            ;------------余数+30H=ASCII
            mov dx,di
            ;------------H重赋给DX
            jmp d_hys
            ;------------判断H为0,不为0循环
            ;============          为0做L位除法
d_wk:       mov cx,si
            ;------------设定循环数
            jcxz d_ecs
            ;------------CX为0 jmpECS
            mov si,offset d4
            ;------------d4数据给SI        
d_cz:       pop ds:[si]
            inc si
            loop d_cz              
            ;-------------循环出栈

d_ecs:      pop bx
            pop cx
d_2:        pop bp
            pop di        
            pop si
            ret
;===============================================================================
;==========================除法divdd==========================================
divdd:      push si
            push bp
            push bx
            push cx
            ;-------------保存数据
            mov bp,ax
            ;-------------L转BP
            mov ax,dx
            mov dx,0
            ;-------------H给AX
            div bx
            ;-------------H/10
            mov si,ax
            ;-------------H结果给SI
            mov ax,bp
            ;-------------L重赋给AX
            div bx
            mov dx,si
            ;-------------H赋值给DX                        
            pop cx
            pop bx
            pop bp
            pop si  
            ret         
;==============================================================================
;==========================日期riqi============================================
riqi:       push si
            ;------------------保存数据
            ;push
            add si,si
            mov ax,ds:[si]
            mov ds:0d2h,ax
            mov ax,ds:2[si]
            mov ds:0d4h,ax
            mov ds:0d6h,0
            call show_str                                                               
            pop si
            ret  
;==============================================================================
;==========================收入shouru==========================================
shouru:     push si
            push bp
            ;------------------保存数据
            mov si,offset d4
            ;------------------d4=si
            mov ax,ds:[bp]
            mov dx,ds:2[bp]
            ;-------------------AX&DX赋值
            call dtoc
            call show_str
            ;-------------------转换ASCII&显示
            
            pop bp
            pop si
            ret  
;==============================================================================
;==========================人数renshu==========================================
renshu:     push si
            ;------------------保存数据
            ;mov dx,offset d3
            mov ax,ds:0a8h[si]   
            mov dx,0
            call dtoc
            call show_str
            pop si                     
;===============================================================================
;==========================平均pingjun==========================================
pingjun:    push si
            push bx
            push di
            push bp
            ;-------------------;保存数据
            mov ax,ds:[bp]
            mov dx,ds:2[bp]
            ;-------------------DX&AX赋值 被除数
            mov bx,ds:0A8H[si]
            ;-------------------BX赋值    除数
            call divdd
            
            
            pop bp
            pop di
            pop bx
            pop si
            ret
                                                           
code ends
end strat
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-14 18:20:24 | 显示全部楼层
每个人思路不同,这是俺自己的~~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-14 19:03:13 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-14 19:05:29 | 显示全部楼层
第二份答案,一样编辑出错??
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-14 19:06:09 | 显示全部楼层
  1. assume cs:code,ds:data,es:table

  2. table segment

  3.     db '1975','1976','1977','1978','1979','1980','1981','1982','1983'

  4.     db '1984','1985','1986','1987','1988','1989','1990','1991','1992'

  5.     db '1993','1994','1995'

  6.     dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514

  7.     dd 345980,590827,803530,1183000,1843000,2795000,3753000,4649000,5937000

  8.     dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226

  9.     dw 11542,14430,15257,17800

  10.     dw 5,3,42,104,85,210,123,111,105,125,140,136,153,211,199,209,224,239

  11.     dw 260,304,333

  12. table ends

  13. data segment

  14.     db 32 dup (0)

  15. data ends

  16. code segment

  17. start:   mov ax,data

  18.      mov ds,ax

  19.      mov ax,table

  20.      mov es,ax

  21.      mov bx,0

  22.      mov si,0

  23.      mov di,0

  24.      mov cx,21

  25.      mov dh,2

  26.      mov dl,30

  27. g:   push cx

  28.      push dx

  29.      mov ax,es:[bx]

  30.      mov [si],ax

  31.      mov ax,es:[bx].2

  32.      mov [si].2,ax ;年份入ds:si

  33.      add si,6

  34.      mov ax,es:[bx].84

  35.      mov dx,es:[bx].86

  36.      call dtoc2    ;收入转成十进制字符入ds:si

  37.      add si,10

  38.      mov ax,es:[di].168

  39.      mov dx,0

  40.      call dtoc2    ;人员数转成十进制字符入ds:si

  41.      add si,6

  42.      mov ax,es:[di].210

  43.      mov dx,0

  44.      call dtoc2    ;人均收入转成十进制字符入ds:si

  45.      mov si,0      ;设置ds:si指向需显示字符首地址

  46. b:   mov cx,29

  47. c:   push cx

  48.      mov cl,[si]

  49.      jcxz f        ;(ds:si)=0转到f执行

  50. d:   inc si

  51.      pop cx

  52.      loop c

  53.      inc si

  54.      mov al,0

  55.      mov [si],al   ;设置结尾符0

  56.      mov si,0      ;设置ds:si指向需显示字符首地址

  57.      pop dx

  58.      mov cl,2

  59.      call show_str

  60.      add bx,4      ;dword数据指向下一数据单元

  61.      add di,2      ;word数据指向下一数据单元

  62.      add dh,1      ;指向显存下一行

  63.      pop cx

  64.      loop g

  65.      mov ax,4c00h

  66.      int 21h

  67. f:   mov al,20h

  68.      mov [si],al   ;(ds:si)=0的数据改成空格

  69.      jmp d



  70. ;名称:dtoc2

  71. ;功能:将dword型数据转变为表示十进制的字符串,字符串以0为结尾符。

  72. ;参数:(ax)=dword型数据的低16位;

  73. ;      (dx)=dword型数据的高16位;

  74. ;      ds:si指向字符串首地址。

  75. ;返回:无。

  76. dtoc2:

  77.      push ax

  78.      push bx

  79.      push cx

  80.      push dx

  81.      push si

  82.      push di

  83.      mov di,0

  84. d20: mov cx,10     ;除数为10

  85.      call divdw

  86.      add cx,30h    ;余数+30h,转为字符

  87.      push cx       ;字符入栈

  88.      inc di        ;记录字符个数

  89.      mov cx,ax

  90.      jcxz d21      ;低位商=0时,转到d21检测高位商

  91.      jmp d20

  92. d21: mov cx,dx

  93.      jcxz d22      ;高低位商全=0时,转到d22执行

  94.      jmp d20

  95. d22: mov cx,di

  96. d23: pop ax        ;字符出栈

  97.      mov [si],al

  98.      inc si        ;ds:si指向下一单元

  99.      loop d23

  100.      mov al,0

  101.      mov [si],al   ;设置结尾符0

  102.      pop di

  103.      pop si

  104.      pop dx

  105.      pop cx

  106.      pop bx

  107.      pop ax

  108.      ret



  109. ;名称:divdw

  110. ;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。

  111. ;参数:(ax)=dword型数据的低16位;

  112. ;      (dx)=dword型数据的高16位;

  113. ;      (cx)=除数。

  114. ;返回:(dx)=结果的高16位;

  115. ;      (ax)=结果的低16位;

  116. ;      (cx)=余数。

  117. divdw:

  118.      push si

  119.      push bx

  120.      push ax

  121.      mov ax,dx

  122.      mov dx,0

  123.      div cx        ;被除数的高位/cx

  124.      mov si,ax

  125.      pop ax

  126.      div cx        ;(被除数高位的商+低位)/cx

  127.      mov cx,dx     ;余数入cx

  128.      mov dx,si     ;高位的商入dx

  129.      pop bx

  130.      pop si

  131.      ret



  132. ;名称:show_str

  133. ;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。

  134. ;参数:(dh)=行号(取值范围0~24);

  135. ;      (dl)=列号(取值范围0~79);

  136. ;      (cl)=颜色;

  137. ;      ds:si指向字符串的首地址。

  138. ;返回:无。

  139. show_str:

  140.      push ax

  141.      push bx

  142.      push es

  143.      push si

  144.      mov ax,0b800h

  145.      mov es,ax

  146.      mov ax,160

  147.      mul dh

  148.      mov bx,ax     ;bx=160*dh

  149.      mov ax,2

  150.      mul dl        ;ax=dl*2

  151.      add bx,ax     ;mov bx,(160*dh+dl*2)设置es:bx指向显存首地址

  152.      mov al,cl     ;把颜色cl赋值al

  153.      mov cl,0

  154. show0:

  155.      mov ch,[si]

  156.      jcxz show1    ;(ds:si)=0时,转到show1执行   

  157.      mov es:[bx],ch

  158.      mov es:[bx].1,al

  159.      inc si        ;ds:si指向下一个字符地址

  160.      add bx,2      ;es:bx指向下一个显存地址

  161.      jmp show0

  162. show1:

  163.      pop si

  164.      pop es

  165.      pop bx

  166.      pop ax

  167.      ret



  168. code ends

  169. end start
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-14 19:07:57 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-14 20:14:27 | 显示全部楼层

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'
;============================================================================
d2 dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
   dd 456980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;============================================================================
d3 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
   dw 11542,14430,15257,17800
;============================================================================
d4 dw 20 dup (0)
data ends
;============================================================================
stack segment
dw 20 dup (0)
stack ends
;============================================================================
;============================================================================
code segment
;============================================================================

strat:      mov ax,data
            mov ds,ax
            mov ax,0b800h
            mov es,ax
            mov ax,stack
            mov ss,ax
            mov sp,20
            ;-----------------初始化寄存器
            mov bx,160
            mov si,0
            mov di,0
            ;-----------------DI指向显存
            mov bp,offset d2
            ;-----------------BP指向D2
            mov cx,21
;=============================================================================            
                        ;显示日期
zhuxh:      call riqi
            
            
;=============================================================================
                        ;显示收入
                        
            push di
            xor di,di
            add di,30
            call shouru
            pop di
            ;----------------------写人数间距加20
;=============================================================================
                        ;显示人数
            push di
            xor di,di
            add di,60
            call renshu
            pop di
            ;----------------------与平均娄间距加20

;=============================================================================
                        ;显示平均
            push di
            xor di,di
            add di,90            
            call pingjun                                                      
            call dtoc
            ;----------------------结果转ASCII码
            call show_str
            pop di
            ;----------------------显示
;=============================================================================
            add bx,160
            mov di,0
            add si,2
            add bp,4
            loop zhuxh
                     
            mov ah,01
            int 21h
            
            
            
;=========                ====================================================
;==============================================================================
;==========================显示show_str========================================
show_str:   
            push bp
            push cx
            mov bp,offset d4
xssj:       mov cl,ds:[bp]
            mov ch,0
            inc bp
            jcxz xswk
            mov es:[bx+di],cl
            inc di
            mov word ptr es:[bx+di],2
            inc di
            jmp xssj
xswk:       pop cx
            pop bp
            
            ret
;==============================================================================
;==========================转换DTOC============================================
dtoc:       push si
            push di
            push bp
            push cx
            push bx
            mov bx,10
            mov si,0
            ;-----------保存数据
d_hys:      mov bp,ax
            ;-----------转移L位
            mov ax,dx
            xor dx,dx
            ;-----------H转AX D清零
            div bx
            ;-----------H/10
            mov di,ax
            ;-----------H结果=DI
            mov ax,bp
            ;-----------L重赋给AX
            div bx
            ;-----------REG+L/10  DX=余娄  H结果=DI
            ;===========          L结果AX
            
            mov cx,bp
            jcxz d_wk            
            ;-----------余数为空jmp 到出栈
            add dx,30h
            push dx
            inc si
            xor dx,dx
            ;------------余数+30H=ASCII
            mov dx,di
            ;------------H重赋给DX
            jmp d_hys
            ;------------判断H为0,不为0循环
            ;============          为0做L位除法
d_wk:       mov cx,si
            ;------------设定循环数
            jcxz d_ecs
            ;------------CX为0 jmpECS
            mov si,offset d4
            ;------------d4数据给SI        
d_cz:       pop ds:[si]
            inc si
            loop d_cz              
            ;-------------循环出栈

d_ecs:      pop bx
            pop cx
d_2:        pop bp
            pop di        
            pop si
            ret
;===============================================================================
;==========================除法divdd==========================================
divdd:      push si
            push bp
            push bx
            push cx
            ;-------------保存数据
            mov bp,ax
            ;-------------L转BP
            mov ax,dx
            mov dx,0
            ;-------------H给AX
            div bx
            ;-------------H/10
            mov si,ax
            ;-------------H结果给SI
            mov ax,bp
            ;-------------L重赋给AX
            div bx
            mov dx,si
            ;-------------H赋值给DX                        
            pop cx
            pop bx
            pop bp
            pop si  
            ret         
;==============================================================================
;==========================日期riqi============================================
riqi:       push si
            ;------------------保存数据
            ;push
            add si,si
            mov ax,ds:[si]
            mov ds:0d2h,ax
            mov ax,ds:2[si]
            mov ds:0d4h,ax
            mov word ptr ds:0d6h,0
            call show_str                                                               
            pop si
            ret  
;==============================================================================
;==========================收入shouru==========================================
shouru:     push si
            push bp
            ;------------------保存数据
            mov si,offset d4
            ;------------------d4=si
            mov ax,ds:[bp]
            mov dx,ds:2[bp]
            ;-------------------AX&DX赋值
            call dtoc
            call show_str
            ;-------------------转换ASCII&显示
            
            pop bp
            pop si
            ret  
;==============================================================================
;==========================人数renshu==========================================
renshu:     push si
            ;------------------保存数据
            ;mov dx,offset d3
            mov ax,ds:0a8h[si]   
            mov dx,0
            call dtoc
            call show_str
            pop si                     
;===============================================================================
;==========================平均pingjun==========================================
pingjun:    push si
            push bx
            push di
            push bp
            ;-------------------;保存数据
            mov ax,ds:[bp]
            mov dx,ds:2[bp]
            ;-------------------DX&AX赋值 被除数
            mov bx,ds:0A8H[si]
            ;-------------------BX赋值    除数
            call divdd
            
            
            pop bp
            pop di
            pop bx
            pop si
            ret
                                                           
code ends
end strat
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-14 20:15:11 | 显示全部楼层
没有加word ptr 嘿嘿!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-14 21:21:31 | 显示全部楼层
显出出来了, QQ截图20121114212658767676.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-14 21:27:37 | 显示全部楼层
乄ヤ灬风 发表于 2012-11-14 21:21
显出出来了,

嗯。。。结贴吧~~~哥!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-14 23:01:28 | 显示全部楼层
  1. assume cs:codesg,ds:datasg,es:table,ss:stack

  2. table segment

  3.   db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  4.   db '1984','1985','1986','1987','1988','1989','1990','1991','1991'
  5.   db '1993','1994','1995'
  6.   ;以上是表示21年的21个字符串
  7.   
  8.   dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  9.   dd 345980,590827,803530,1183000,1843000,2795000,3753000,4649000,5937000
  10.   ;以上是表示21年公司总收入的21个dword型数据
  11.   
  12.   dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  13.   dw 11542,14430,15257,17800
  14.   ;以上是表示21年公司雇员人数的21个word型数据
  15.   
  16.   dw 5,3,42,104,85,210,123,111,105,125,140,136,153,211,199,209,224,239
  17.   dw 260,304,333
  18.   ;以上是表示21年公司人均收入
  19.   
  20.   
  21. table ends

  22. datasg segment
  23.   
  24.   db 1000 dup (0)
  25.   
  26. datasg ends

  27. stack segment

  28.   db 100 dup (0)

  29. stack ends

  30. codesg segment

  31.   start:
  32.          
  33.             mov ax,datasg
  34.                         mov ds,ax
  35.                        
  36.                     mov ax,table
  37.                         mov es,ax
  38.                         mov si,0
  39.                         mov bp,0
  40.                        
  41.                         mov ax,stack
  42.                         mov ss,ax
  43.                         mov sp,100
  44.                        
  45.                         mov cx,21
  46.         s7:                call dtoc
  47.                         add bp,16               ;bp加16换行
  48.                     add di,4                ;si+4
  49.                         loop s7
  50.                        
  51.             mov ax,4c00h
  52.             int 21h                       

  53.                      

  54.                
  55.         dtoc:
  56.               push cx
  57.                   push di
  58.                   push si

  59.                   ;cx、si入栈


  60.         s4:                           
  61.               mov ax,es:[di+54h]
  62.               mov dx,es:[di+56h]
  63.          

  64.                   

  65.                   mov bx,0
  66.                   
  67.         s1:  mov cx,10d
  68.          push ax       ;ax值入栈
  69.                  
  70.                  mov ax,dx     ;dx值等于ax
  71.                   
  72.                  mov dx,0      ;dx为零
  73.                  
  74.                  div cx        ;除以cx
  75.   
  76.                  mov cx,ax     ;商为零cx
  77.                   
  78.                  jcxz s2       ;cx为零转移到s2
  79.                   
  80.                  add dx,30h
  81.                  push dx
  82.                   
  83.                  inc bx
  84.                   
  85.                  jmp short s1
  86.     s5:  mov bx,0
  87.              pop ax
  88.          
  89.          mov cx,ax
  90.          jcxz okay                 

  91.         s6:         mov dx,0
  92.                  mov cx,10
  93.             
  94.                  div cx
  95.   
  96.                   mov cx,ax
  97.                   
  98.                   jcxz s2
  99.                   
  100.                   add dx,30h
  101.                   push dx
  102.                   
  103.                   inc bx
  104.                   
  105.                   jmp short s6
  106.                   
  107.     s2:   add dx,30h          ;余数加30h放入dx
  108.               push dx             ;dx入栈
  109.                   inc bx              ;bx记寻加1
  110.                   

  111.                   mov cx,bx           ;bx放入cx判断
  112.                   
  113.                   
  114.                   mov di,0            ;di等于0
  115.         s3:   pop ax              ;dx植出栈放入ax
  116.          
  117.                   mov ds:[bp+di+05h],al   ;[bp+di+05h]=al
  118.                   add di,1                      ;di加1
  119.                                                         
  120.                   loop s3                 ;loop 循环
  121.          
  122.                   jmp short s5



  123.         okay: pop di
  124.                   pop cx                          
  125.                   
  126.                   ret

  127. codesg ends

  128. end start
复制代码
我改的,还是被除数还是只可以等于FFFF.
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-14 23:02:58 | 显示全部楼层
乄ヤ灬风 发表于 2012-11-14 23:01
我改的,还是被除数还是只可以等于FFFF.

帮我指正下,被除数除以十得到各位ASCII码。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-14 23:15:42 | 显示全部楼层
本帖最后由 pediyzhi 于 2012-11-14 23:17 编辑
乄ヤ灬风 发表于 2012-11-14 23:02
帮我指正下,被除数除以十得到各位ASCII码。

被除数除以10然后取余数加30h
详细的看我这个帖子,注释的很全
http://bbs.fishc.com/thread-21561-1-1.html
你可以参考下
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-11-15 15:43:37 | 显示全部楼层
  1. assume cs:code
  2. data segment
  3.         dd 1975,1976,1977,1978,1979,1980,1981,1982,1983
  4.         dd 1984,1985,1986,1987,1988,1989,1990,1991,1992
  5.         dd 1993,1994,1995
  6.         ;以上偏移为0,数组元素偏移为4
  7.         dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  8.         dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
  9.         ;以上偏移为84,数组元素偏移为4
  10.         dd 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226     ;为了把所有的放在同一个循环里,这里用DD
  11.         dd 11542,14430,15257,17800
  12.         ;以上偏移为168,数组元素偏移为2
  13. data ends

  14. data2        segment
  15.         db 1024 dup (0)
  16. data2 ends

  17. stack segment
  18.         db 64 dup (0)
  19. stack ends

  20. code segment
  21.                         ;处理数据为字符串
  22.                         ;开始年份初始化
  23.         start:        mov ax,        stack
  24.                         mov ss,        ax
  25.                         mov sp,        40h
  26.                         mov ax,        data        ;原始数据段
  27.                         mov ds,        ax
  28.                         mov ax,        data2        ;临时存放数据段
  29.                         mov es,        ax
  30.                         mov bx,        0                ;原始数据段数据偏移
  31.                         mov di,        0                ;临时存放数据段数据偏移
  32.                         call arrange
  33.                         ;初始化
  34.                         mov ax,        data2        ;临时存放data2数据段
  35.                         mov ds,        ax
  36.                         ;写入缓存设置
  37.                         mov dh,        2        ;行数
  38.                         mov si,        0        ;字符偏移
  39.                         mov cx,        21
  40.                 do5:push cx
  41.                         mov cx,        4
  42.                         mov dl,        2        ;列数
  43.                 do4:

  44.                         push cx
  45.                         push dx
  46.                         mov cl,        2        ;颜色
  47.                         call show_str
  48.                         pop dx
  49.                         pop        cx
  50.                        
  51.                         add dl,        10
  52.                         loop do4
  53.                         pop cx
  54.                         inc dh
  55.                         loop do5
  56.                        
  57.                         mov ax,4c00h
  58.                         int 21h
  59.                        
  60.         arrange:
  61.                         mov cx,21
  62.                         ;年
  63.                 do3:push cx
  64.                         mov cx,3
  65.                         mov si,0
  66.                 do2:mov ax,[bx+si]
  67.                         mov dx,[bx+si+2]
  68.                         push cx
  69.                         push bx
  70.                         push si
  71.                         mov si,0
  72.                         call dtoc1
  73.                         pop si
  74.                         pop bx
  75.                         pop cx
  76.                         add si,84
  77.                         ;add        bx,4
  78.                         loop do2
  79.                         push bx
  80.                         mov ax,[bx+84]
  81.                         mov dx,[bx+86]
  82.                         mov cx,[bx+168]
  83.                         call divdw
  84.                         push si
  85.                         mov si,0
  86.                         call dtoc1
  87.                         pop si
  88.                         pop bx
  89.                         pop cx
  90.                         add bx,4
  91.                         loop do3
  92.                         ret
  93.                        
  94.                        
  95.                 dtoc1:        mov cx,        10        ;把数据转换为字符串
  96.                                 call divdw        ;返回结果dx=高16位,AX=低16位,CX为余数
  97.                                 mov bx,        cx
  98.                                 add bx,        30h                ;转换其中一个字符
  99.                                 push bx                        ;把转换好的字符推入栈中
  100.                                 inc si                        ;计数器加1
  101.                                 mov cx,        ax                ;根据余数判断是否继续
  102.                                 jcxz ok1                ;CX等于0则表示该段转换完成跳转
  103.                                 jmp short dtoc1        ;CX不等于0跳回去继续转换
  104.                 ok1:        mov cx,        si        ;根据计数设置循环
  105.                                 do1:pop bx
  106.                                         mov es:[di],bl
  107.                                         inc di
  108.                                         loop do1
  109.                                 mov bl,        0
  110.                                 mov es:[di],bl
  111.                                 inc di
  112.                                 ret        ;call dtoc1返回
  113.        
  114.        
  115.        
  116.        
  117.        
  118.        
  119.        
  120.         show_str:        mov ax,        0b800h
  121.                                 mov es,        ax        ;写入显示缓存
  122.                                 mov al,        160
  123.                                 dec dh
  124.                                 mul dh                ;计算行数偏移
  125.                                 mov bx,        ax        ;保存行数偏移
  126.                                 mov al,        2
  127.                                 dec dl
  128.                                 mul dl                ;计算列数偏移
  129.                                 add        bx,        ax        ;计算所有偏移保存在bx中
  130.                 xr:                mov ch,        [si]
  131.                                 mov al,        cl
  132.                                 mov ah,        00
  133.                                 sub cx,        ax
  134.                                 inc si
  135.                                 jcxz        ok4
  136.                                 add cx,        ax
  137.                                 mov al,        ch
  138.                                 mov ah,        cl
  139.                                 mov es:[bx],        ax
  140.                                 add bx,        2
  141.                                 jmp short xr
  142.                 ok4:        ret       
  143.        
  144.        
  145.        
  146.        
  147.        
  148.        
  149.        
  150.         divdw:        mov bx,        ax        ;防溢出除法
  151.                         mov ax,        dx
  152.                         xor dx,        dx
  153.                         div cx
  154.                         push ax
  155.                         mov ax,        bx
  156.                         div cx
  157.                         mov cx,        dx
  158.                         pop dx
  159.                         ret

  160. code ends
  161. end start
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-11-15 23:16:44 | 显示全部楼层
434344334.png
把算复制完了
代码:

  1. assume cs:codesg,ds:datasg,es:table,ss:stack
  2. table segment
  3.   db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
  4.   db '1984','1985','1986','1987','1988','1989','1990','1991','1991'
  5.   db '1993','1994','1995'
  6.   ;以上是表示21年的21个字符串
  7.   
  8.    dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
  9.    dd 345980,590827,803530,1183000,1843000,2795000,3753000,4649000,5937000
  10.   ;以上是表示21年公司总收入的21个dword型数据
  11.   
  12.   dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
  13.   dw 11542,14430,15257,17800
  14.   ;以上是表示21年公司雇员人数的21个word型数据
  15.   
  16.   dw 5,3,42,104,85,210,123,111,105,125,140,136,153,211,199,209,224,239
  17.   dw 260,304,333
  18.   ;以上是表示21年公司人均收入
  19.   
  20.   dd 10 dup (0)
  21. table ends
  22. datasg segment
  23.   
  24.   db 1000 dup (0)
  25.   
  26. datasg ends
  27. stack segment
  28.   db 100 dup (0)

  29. stack ends
  30. codesg segment
  31.   start:
  32.          
  33.             mov ax,datasg
  34.    mov ds,ax
  35.    
  36.       mov ax,table
  37.    mov es,ax
  38.    mov si,0
  39.    mov bp,0
  40.    mov di,0
  41.    
  42.    mov ax,stack
  43.    mov ss,ax
  44.    mov sp,100
  45.    
  46.    mov cx,21               ;21次循环为总收入转换ASCII码
  47. s7:  call dtoc               
  48.    add bp,16               ;bp加16换行
  49.       add di,4                ;si+4
  50.    loop s7
  51.    
  52.    mov ax,datasg
  53.    mov ds,ax
  54.    
  55.       mov ax,table
  56.    mov es,ax
  57.    mov si,0
  58.    mov bp,0
  59.    mov di,0
  60.    
  61.    mov ax,stack
  62.    mov ss,ax
  63.    mov sp,100
  64.    
  65.    mov cx,21                 ;21次循环为总人数转换ASCII码
  66. s8:     call dtoc1
  67.             add bp,16                 ;bp加16换行
  68.             add di,2                  ;si+2
  69.             loop s8
  70.    
  71.    mov ax,datasg
  72.    mov ds,ax
  73.    
  74.       mov ax,table
  75.    mov es,ax
  76.    mov si,0
  77.    mov bp,0
  78.    mov di,0
  79.    
  80.    mov ax,stack
  81.    mov ss,ax
  82.    mov sp,100
  83.    
  84.    mov cx,21                 ;21次循环为平均收入转换ASCII码
  85. s9:     call dtoc2
  86.             add bp,16                 ;bp加16换行
  87.             add di,2                  ;si+2
  88.             loop s9
  89.    
  90.    mov ax,datasg
  91.    mov ds,ax
  92.    
  93.       mov ax,table
  94.    mov es,ax
  95.    mov si,0
  96.    mov bp,0
  97.    mov di,0
  98.    
  99.    mov ax,stack
  100.    mov ss,ax
  101.    mov sp,100
  102.    
  103.    mov cx,21                     ;21次循环年份
  104.    
  105. s10:    call dtoc3
  106.             add bp,16                     ;bp加16换行
  107.             add di,4                      ;di+4
  108.             loop s10
  109.    
  110.    mov ax,datasg
  111.    mov ds,ax
  112.    
  113.       mov ax,0B800h
  114.    mov es,ax
  115.    mov si,0
  116.    mov bp,0
  117.    mov di,0
  118.    
  119.    mov ax,stack
  120.    mov ss,ax
  121.    mov sp,100
  122.    
  123.    mov dh,4
  124.    
  125.       mov dl,3
  126.    
  127.             mov cx,21
  128.    
  129. s11:    call show_str
  130.    add bp,16
  131.    add dh,1
  132.    loop s11
  133.    
  134.    mov ax,datasg
  135.    mov ds,ax
  136.    
  137.       mov ax,0B800h
  138.    mov es,ax
  139.    mov si,0
  140.    mov bp,0
  141.    mov di,0
  142.    
  143.    mov ax,stack
  144.    mov ss,ax
  145.    mov sp,100
  146.    
  147.    mov dh,4
  148.    
  149.       mov dl,14
  150.    
  151.             mov cx,21
  152.    
  153. s12:    call show_str1
  154.    add bp,16
  155.    add dh,1
  156.    loop s12
  157.    
  158.    mov ax,datasg
  159.    mov ds,ax
  160.    
  161.       mov ax,0B800h
  162.    mov es,ax
  163.    mov si,0
  164.    mov bp,0
  165.    mov di,0
  166.    
  167.    mov ax,stack
  168.    mov ss,ax
  169.    mov sp,100
  170.    
  171.    mov dh,4
  172.    
  173.       mov dl,28
  174.    
  175.             mov cx,21
  176.    
  177. s13:    call show_str2
  178.    add bp,16
  179.    add dh,1
  180.    loop s13
  181.    
  182.    mov ax,datasg
  183.    mov ds,ax
  184.    
  185.       mov ax,0B800h
  186.    mov es,ax
  187.    mov si,0
  188.    mov bp,0
  189.    mov di,0
  190.    
  191.    mov ax,stack
  192.    mov ss,ax
  193.    mov sp,100
  194.    
  195.    mov dh,4
  196.    
  197.       mov dl,40
  198.    
  199.             mov cx,21
  200.    
  201. s14:    call show_str3
  202.    add bp,16
  203.    add dh,1
  204.    loop s14
  205.    
  206.             mov ax,4c00h
  207.             int 21h   
  208.       
  209.   
  210. dtoc:
  211.        push cx
  212.     push di
  213.     push si
  214.           push bp
  215.     ;cx、si入栈

  216. s4:      
  217.        mov ax,es:[di+54h]
  218.        mov dx,es:[di+56h]
  219.          
  220.    
  221.     mov bx,10
  222.    
  223. s1:  mov bp,ax     ;转移到L位
  224.    
  225.    mov ax,dx     ;dx值等于ax
  226.    
  227.    xor dx,dx     ;-----------H转AX D清零
  228.    
  229.    div bx        ;H除以bx
  230.          
  231.    mov di,ax     ;H结果=di
  232.    
  233.    mov ax,bp     ;ax植出栈,L重赋给ax
  234.    
  235.    div bx        ;-----------REG+L/10  DX=余娄  H结果=DI
  236.                        ;===========          L结果AX   
  237.    
  238.    mov cx,bp     ;商为零cx
  239.    
  240.    jcxz d_wk     ;-----------余数为空jmp 到出栈
  241.    add dx,30h
  242.          push dx
  243.          inc si
  244.          xor dx,dx
  245.          ;------------余数+30H=ASCII
  246.          mov dx,di
  247.          ;------------H重赋给DX
  248.          jmp s1
  249.             ;------------判断H为0,不为0循环
  250.             ;============          为0做L位除法
  251.    
  252. d_wk:    mov cx,si
  253.             ;------------设定循环数
  254.             ;------------CX为0 jmpECS
  255.          
  256.    jcxz s3       ;cx为零转移到s2
  257.    

  258.    
  259.     mov si,0
  260.     mov di,0            ;di等于0
  261.    
  262. s3:   pop ax              ;dx植出栈放入ax
  263.          
  264.     mov es:[di+100h],al   ;[bp+di+05h]=al
  265.     add di,1               ;di加1
  266.               
  267.      loop s3                 ;loop 循环
  268.          
  269.     pop bp      
  270.     mov cx,di
  271.          
  272. s2:   mov al,es:[si+100h]     
  273.     mov ds:[si+bp+05h],al
  274.    
  275.     add si,1
  276.    
  277.     loop s2
  278.    

  279. okay: pop si
  280.        pop di
  281.     pop cx     
  282.    
  283.     ret
  284.    
  285.    dtoc1: ;除以十得到余数加30H
  286.           push cx
  287.     push di
  288.     push si
  289.           push bp
  290.     ;cx、si入栈

  291.     sl4:  mov ax,es:[di+0a8h]

  292.     mov bx,0
  293.    
  294. sl1:  mov cx,10d
  295.           mov dx,0
  296.          
  297.     div cx
  298.    
  299.     mov cx,ax
  300.    
  301.     jcxz sl2
  302.    
  303.     add dx,30h
  304.     push dx
  305.    
  306.     inc bx
  307.    
  308.     jmp short sl1
  309.    
  310.     sl2:  add dx,30h
  311.        push dx
  312.     inc bx
  313.    
  314.     mov cx,bx
  315.     mov si,0
  316.    
  317. sl3:  pop ax
  318.          
  319.     mov es:[si+100h],al
  320.     inc si
  321.    
  322.     loop sl3
  323.    
  324.     pop bp
  325.     mov di,0
  326.    
  327.     mov cx,si
  328.    
  329. sl5:  mov al,es:[di+100h]     
  330.     mov ds:[di+bp],al
  331.    
  332.     add di,1  
  333.    
  334.     loop sl5
  335. okay1:
  336.           pop si
  337.     pop di
  338.     pop cx   
  339.         
  340.     ret
  341.    
  342.   dtoc2:            ;21年平均收入
  343.           ;除以十得到余数加30H
  344.           push cx
  345.     push di
  346.     push si
  347.           push bp
  348.     ;cx、si入栈

  349.     sd4:  mov ax,es:[di+0d2h]

  350.     mov bx,0
  351.    
  352. sd1:  mov cx,10d
  353.           mov dx,0
  354.          
  355.     div cx
  356.    
  357.     mov cx,ax
  358.    
  359.     jcxz sd2
  360.    
  361.     add dx,30h
  362.     push dx
  363.    
  364.     inc bx
  365.    
  366.     jmp short sd1
  367.    
  368.     sd2:  add dx,30h
  369.        push dx
  370.     inc bx
  371.    
  372.     mov cx,bx
  373.     mov si,0
  374.    
  375. sd3:  pop ax
  376.          
  377.     mov es:[si+100h],al
  378.     inc si
  379.    
  380.     loop sd3
  381.    
  382.     pop bp
  383.     mov di,0
  384.    
  385.     mov cx,si
  386.    
  387. sd5:  mov al,es:[di+100h]     
  388.     mov ds:[di+bp+0ch],al
  389.    
  390.     add di,1  
  391.    
  392.     loop sd5
  393. okay2:
  394.           pop si
  395.     pop di
  396.     pop cx   
  397.         
  398.     ret
  399.    
  400. dtoc3:                     ;21年年份放入ds段中
  401.        push cx
  402.     push di
  403.     push si
  404.     push bp
  405.    
  406.   sw4: mov ax,es:[di]
  407.           mov dx,es:[di+2]
  408.          
  409.     mov di,0
  410.    
  411.     pop bp
  412.    
  413.     mov ds:[bp+150h],ax
  414.     mov ds:[bp+152h],dx
  415.    
  416.    
  417. okay3:
  418.        pop si
  419.     pop di
  420.     pop cx
  421.    
  422.     ret

  423. show_str:mov ax,0A0h
  424.           mul dh
  425.    
  426.     mov bx,ax
  427.     mov ax,2
  428.     mul dl
  429.     sub ax,2
  430.    
  431.     add bx,ax
  432.    
  433.     mov di,0
  434.    
  435.    
  436.     mov al,ds:[bp+150h]  
  437.     mov es:[bx+di],al
  438.     mov byte ptr es:[bx+di+1],02h
  439.     add di,2
  440.     mov ah,ds:[bp+151h]
  441.     mov es:[bx+di],ah
  442.     mov byte ptr es:[bx+di+1],02h
  443.     add di,2
  444.        mov al,ds:[bp+152h]
  445.     mov es:[bx+di],al
  446.     mov byte ptr es:[bx+di+1],02h
  447.     add di,2
  448.     mov ah,ds:[bp+153h]
  449.           mov es:[bx+di],ah
  450.     mov byte ptr es:[bx+di+1],02h
  451.         
  452.    
  453. ok:   ret   
  454.    
  455.    
  456. show_str1:                    ;显示21年总收入
  457.           mov ax,0A0h
  458.           mul dh
  459.    
  460.     mov bx,ax
  461.     mov ax,2
  462.     mul dl
  463.     sub ax,2
  464.    
  465.     add bx,ax
  466.    
  467.     mov di,0
  468.    
  469.    
  470.     mov al,ds:[bp+5h]  
  471.     mov es:[bx+di],al
  472.     mov byte ptr es:[bx+di+1],02h
  473.     add di,2
  474.     mov ah,ds:[bp+6h]
  475.     mov es:[bx+di],ah
  476.     mov byte ptr es:[bx+di+1],02h
  477.     add di,2
  478.        mov al,ds:[bp+7h]
  479.     mov es:[bx+di],al
  480.     mov byte ptr es:[bx+di+1],02h
  481.     add di,2
  482.     mov ah,ds:[bp+8h]
  483.           mov es:[bx+di],ah
  484.     mov byte ptr es:[bx+di+1],02h
  485.           add di,2
  486.     mov al,ds:[bp+9h]  
  487.     mov es:[bx+di],al
  488.     mov byte ptr es:[bx+di+1],02h
  489.     add di,2
  490.     mov ah,ds:[bp+0Ah]
  491.           mov es:[bx+di],ah
  492.     mov byte ptr es:[bx+di+1],02h
  493.           add di,2
  494.     mov al,ds:[bp+0Bh]  
  495.     mov es:[bx+di],al
  496.     mov byte ptr es:[bx+di+1],02h
  497.    
  498. okwy:
  499.           ret
  500.    
  501. show_str2:                 ;显示21年总人数
  502.           mov ax,0A0h
  503.           mul dh
  504.    
  505.     mov bx,ax
  506.     mov ax,2
  507.     mul dl
  508.     sub ax,2
  509.    
  510.     add bx,ax
  511.    
  512.     mov di,0
  513.    
  514.     mov al,ds:[bp]  
  515.     mov es:[bx+di],al
  516.     mov byte ptr es:[bx+di+1],02h
  517.     add di,2
  518.     mov ah,ds:[bp+1h]
  519.     mov es:[bx+di],ah
  520.     mov byte ptr es:[bx+di+1],02h
  521.     add di,2
  522.        mov al,ds:[bp+2h]
  523.     mov es:[bx+di],al
  524.     mov byte ptr es:[bx+di+1],02h
  525.     add di,2
  526.     mov ah,ds:[bp+3h]
  527.           mov es:[bx+di],ah
  528.     mov byte ptr es:[bx+di+1],02h
  529.           add di,2
  530.     mov al,ds:[bp+4h]  
  531.     mov es:[bx+di],al
  532.     mov byte ptr es:[bx+di+1],02h
  533.    
  534. okwl:
  535.           ret
  536.    
  537. show_str3:                  ;显示21年人均收入
  538.           mov ax,0A0h
  539.           mul dh
  540.    
  541.     mov bx,ax
  542.     mov ax,2
  543.     mul dl
  544.     sub ax,2
  545.    
  546.     add bx,ax
  547.    
  548.     mov di,0
  549.    
  550.     mov al,ds:[bp+0ch]  
  551.     mov es:[bx+di],al
  552.     mov byte ptr es:[bx+di+1],02h
  553.     add di,2
  554.     mov ah,ds:[bp+0dh]
  555.     mov es:[bx+di],ah
  556.     mov byte ptr es:[bx+di+1],02h
  557.     add di,2
  558.        mov al,ds:[bp+0eh]
  559.     mov es:[bx+di],al
  560.     mov byte ptr es:[bx+di+1],02h
  561.    
  562. okyok:
  563.           ret
  564. codesg ends
  565. end start
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-13 19:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表