阿斯顿撒旦 发表于 2012-9-27 23:25:53

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

对第八章的代码看的不是很懂 希望谁能给加个详细的注释谢谢啊 新手的苦恼
这是代码 随便一个加注释就行
实验七 寻址方式在结构化访问中的应用(两个程序)



程序一:四个循环

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,

   mov ,ax

   add si,2

   mov ax,

   mov ,ax

   add si,2

   add bp,10h

   loop s0



   mov cx,21

   mov bp,0

   mov si,0

s1:mov ax,

   mov ,ax

   add si,2

   mov ax,

   mov ,ax

   add si,2

   add bp,10h

   loop s1



   mov cx,21

   mov bp,0

   mov si,0

s2:mov ax,

   mov ,ax

   add si,2

   add bp,10h

   loop s2



   mov cx,21

   mov bp,0

s3:mov ax,

   mov dx,

   div word ptr

   mov ,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,

      mov es:,ax

      mov ax,.2

      mov es:.2,ax



      mov ax,.84

      mov es:.5,ax

      mov dx,.86

      mov es:.7,dx



      div word ptr ds:.168

      mov es:.13,ax

      

      mov ax,.168

      mov es:.10,ax



      add di,2

      add bx,4

      add si,16

      loop s



      mov ax,4c00h

      int 21h

code ends

end start

pediyzhi 发表于 2012-9-27 23:25:54

DATASSEGMENT
            DB      '1975', '1976', '1977', '1978', '1979', '1980', '1981', '1982'
            DB      '1983', '1984', '1985', '1986', '1987', '1988', '1989', '1990'
            DB      '1991', '1992', '1993', '1994', '1995'
                ;以上是表示21年的21个字符串
                ;偏移地址是0-53h 十进制是84-1

            DD      16, 22, 382, 1356, 2390, 8000, 16000, 24486, 50065, 97479, 140417, 197514
            DD      345980, 590827, 803530, 118300, 184300, 2759000, 3753000, 4649000, 5937000
                ;以上是表示21年公司总收入的21个dword型数据
                ;偏移地址从54h-a7h 十进制是84*2=168-1
            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型数据
                ;偏移地址从a8h-d1h 十进制是168+42=210-1
       DATASENDS

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

      STACKSSEGMENT
            DB 16 DUP (0)
      STACKSENDS

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

       CODESSEGMENT
      START:
            ;相关寄存器初始化
            MOV       AX,DATAS
            MOV       DS,AX
            MOV       AX,TABLE
            MOV       ES,AX
            MOV       AX,STACKS
            MOV       SS,AX
            MOV       SP,16
   
            MOV       BX,0
            MOV       BP,0
            MOV       DI,0
            MOV       SI,0

            MOV       CX,21

      cycle:;使用栈复制年份
            push                 0
            PUSH      .2
            POP       ES:.2
            POP       ES:.0
               
            ;使用栈复制收入
            PUSH 54H..0
            PUSH 54H..2
            POP       ES:.7
            POP       ES:.5

            ;使用栈复制雇员数
            PUSH      0A8H.
            POP       ES:.0AH

            ;计算人均收入
            MOV       AX,ES:.5
            MOV       DX,ES:.7
            DIV WORD PTR ES:.0AH
            MOV       ES:.0DH,AX

            ADD       SI,2H
            ADD       DI,4H
            ADD       BP,10H

            loop cycle
                  

            MOV       AH,4CH
            INT       21H
       CODESENDS
END       START
; 栈的使用、结构化程序设计的思想...
; 话就不多说了,自己体会吧

一个人 发表于 2012-9-28 07:15:34

你可以百度一下实验7的答案 里边是带注释的

阿斯顿撒旦 发表于 2012-9-28 22:22:12

pediyzhi 发表于 2012-9-28 07:39 static/image/common/back.gif


谢谢 发完问题 睡觉前想了会又想通了 谢谢

超级摔锅 发表于 2012-9-29 01:07:27

en..:lol:lol

Cyrus 发表于 2012-9-30 20:17:20

你可以百度一下实验7的答案 里边是带注释
页: [1]
查看完整版本: 求 王爽版汇编第八章 加详细注释的源代码 越详细越好好谢谢