鱼C论坛

 找回密码
 立即注册
查看: 2424|回复: 5

求 王爽版汇编第八章 加详细注释的源代码 越详细越好好谢谢

[复制链接]
发表于 2012-9-27 23:25:53 | 显示全部楼层 |阅读模式
5鱼币
对第八章的代码看的不是很懂 希望谁能给加个详细的注释  谢谢啊 新手的苦恼
这是代码 随便一个加注释就行
实验七 寻址方式在结构化访问中的应用(两个程序)



程序一:四个循环

assume cs:codesg,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 11452,14430,15257,17800

data ends

table segment

    db 21 dup ('year summ ne ?? ')

table ends

codesg segment

start:  mov ax,data

        mov ds,ax

        mov ax,table

        mov ss,ax

        mov bx,0

        mov si,0

        mov bp,0

        mov cx,21

s0:mov ax,[bx+si]

   mov [bp+0],ax

   add si,2

   mov ax,[bx+si]

   mov [bp+2],ax

   add si,2

   add bp,10h

   loop s0



   mov cx,21

   mov bp,0

   mov si,0

s1:mov ax,[bx+si+84]

   mov [bp+5],ax

   add si,2

   mov ax,[bx+si+84]

   mov [bp+7],ax

   add si,2

   add bp,10h

   loop s1



   mov cx,21

   mov bp,0

   mov si,0

s2:mov ax,[bx+si+168]

   mov [bp+10],ax

   add si,2

   add bp,10h

   loop s2



   mov cx,21

   mov bp,0

s3:mov ax,[bp+5]

   mov dx,[bp+7]

   div word ptr [bp+10]

   mov [bp+13],ax

   add bp,10h

   loop s3



    mov ax,4c00h

    int 21h

codesg ends

end start

----------------------------------华丽的分割线---------------------------------

程序二:一个循环

assume cs:code,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 11452,14430,15257,17800

data ends

table segment

    db 21 dup ('year summ ne ?? ')

table ends

code segment

start:  mov ax,data

        mov ds,ax

        mov ax,table

        mov es,ax

        mov bx,0

        mov si,0

        mov di,0

        mov cx,21

s:      mov ax,[bx]

        mov es:[si],ax

        mov ax,[bx].2

        mov es:[si].2,ax



        mov ax,[bx].84

        mov es:[si].5,ax

        mov dx,[bx].86

        mov es:[si].7,dx



        div word ptr ds:[di].168

        mov es:[si].13,ax

        

        mov ax,[di].168

        mov es:[si].10,ax



        add di,2

        add bx,4

        add si,16

        loop s



        mov ax,4c00h

        int 21h

code ends

end start

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-27 23:25:54 | 显示全部楼层
  1. DATAS  SEGMENT
  2.               DB        '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982'
  3.               DB        '1983', '1984', '1985', '1986', '1987', '1988', '1989', '1990'
  4.               DB        '1991', '1992', '1993', '1994', '1995'
  5.                 ;以上是表示21年的21个字符串
  6.                 ;偏移地址是0-53h 十进制是84-1

  7.               DD        16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479, 140417, 197514
  8.               DD        345980, 590827, 803530, 118300, 184300, 2759000, 3753000, 4649000, 5937000
  9.                 ;以上是表示21年公司总收入的21个dword型数据
  10.                 ;偏移地址从54h-a7h 十进制是84*2=168-1
  11.               DW        3, 7, 9, 13, 28, 38, 130, 220, 476, 778, 1001, 1442, 2258, 2793, 4037, 5635, 8226
  12.               DW        11542, 14430, 15257, 17800
  13.                 ;以上是表示21年公司雇员人数的21个word型数据
  14.                 ;偏移地址从a8h-d1h 十进制是168+42=210-1
  15.        DATAS  ENDS

  16.        TABLE  SEGMENT
  17.               DB        21 DUP ('year summ ne ?? ')
  18.                 ;偏移地址从E0-220 十进制是21*16=336d=150h-10h+e0h=220h
  19.                 ;可以将地址给ES 用-D ES来查看
  20.                 ;0B4F:0000  79 65 61 72 20 73 75 6D-6D 20 6E 65 20 3F 3F 20   year summ ne ??
  21.                 ;根据上面的定位
  22.        TABLE  ENDS

  23.       STACKS  SEGMENT
  24.               DB 16 DUP (0)
  25.       STACKS  ENDS

  26. ASSUME    CS:CODES,DS:DATAS,SS:STACKS

  27.        CODES  SEGMENT
  28.       START:
  29.               ;相关寄存器初始化
  30.               MOV       AX,DATAS
  31.               MOV       DS,AX
  32.               MOV       AX,TABLE
  33.               MOV       ES,AX
  34.               MOV       AX,STACKS
  35.               MOV       SS,AX
  36.               MOV       SP,16
  37.      
  38.               MOV       BX,0
  39.               MOV       BP,0
  40.               MOV       DI,0
  41.               MOV       SI,0

  42.               MOV       CX,21

  43.       cycle:  ;使用栈复制年份
  44.               push                 0[di]
  45.               PUSH      [DI].2
  46.               POP       ES:[BP].2
  47.               POP       ES:[BP].0
  48.                
  49.               ;使用栈复制收入
  50.               PUSH 54H.[DI].0
  51.               PUSH 54H.[DI].2
  52.               POP       ES:[BP].7
  53.               POP       ES:[BP].5

  54.               ;使用栈复制雇员数
  55.               PUSH      0A8H.[SI]
  56.               POP       ES:[BP].0AH

  57.               ;计算人均收入
  58.               MOV       AX,ES:[BP].5
  59.               MOV       DX,ES:[BP].7
  60.               DIV WORD PTR ES:[BP].0AH
  61.               MOV       ES:[BP].0DH,AX

  62.               ADD       SI,2H
  63.               ADD       DI,4H
  64.               ADD       BP,10H

  65.               loop cycle
  66.                     

  67.               MOV       AH,4CH
  68.               INT       21H
  69.        CODES  ENDS
  70. END       START
  71. ; 栈的使用、结构化程序设计的思想...
  72. ; 话就不多说了,自己体会吧
复制代码


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

使用道具 举报

发表于 2012-9-28 07:15:34 | 显示全部楼层
你可以百度一下实验7的答案 里边是带注释的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-9-28 22:22:12 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-9-29 01:07:27 | 显示全部楼层
en..:lol:lol
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-9-30 20:17:20 | 显示全部楼层
你可以百度一下实验7的答案 里边是带注释
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-7 08:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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