求 王爽版汇编第八章 加详细注释的源代码 越详细越好好谢谢
对第八章的代码看的不是很懂 希望谁能给加个详细的注释谢谢啊 新手的苦恼这是代码 随便一个加注释就行
实验七 寻址方式在结构化访问中的应用(两个程序)
程序一:四个循环
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
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
; 栈的使用、结构化程序设计的思想...
; 话就不多说了,自己体会吧
你可以百度一下实验7的答案 里边是带注释的 pediyzhi 发表于 2012-9-28 07:39 static/image/common/back.gif
谢谢 发完问题 睡觉前想了会又想通了 谢谢 en..:lol:lol 你可以百度一下实验7的答案 里边是带注释
页:
[1]