. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->包含多个段的程序
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  第六章实验(六)作业 请高手指教  [待解决] 回复[ 5次 ]   点击[ 448次 ]  
minidxer
[帖 主]   [ 发表时间:2011-09-18 09:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-18 06:18
assume cs:code

a segment

        dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh

a ends

b segment

        dw 0,0,0,0,0,0,0,0

b ends

code segment

start:
        mov ax,a
        mov ds,ax
        mov ss,ax
        mov sp,30h
        mov bx,0
        mov cx,8
s:        push ds:[bx]
        add bx,2
        loop s
        mov ax,4c00h
        int 21h

code ends

end start



D:\>debug p5_6.exe
-r
AX=0000  BX=0000  CX=004C  DX=0000  SP=0000  BP=0000  SI=0000  DI=00
DS=0B78  ES=0B78  SS=0B88  CS=0B8B  IP=0000   NV UP EI PL NZ NA PO N
0B8B:0000 B8880B        MOV     AX,0B88

-d ds:100
0B78:0100  01 00 02 00 03 00 04 00-05 00 06 00 07 00 08 00   ................
0B78:0110  09 00 0A 00 0B 00 0C 00-0D 00 0E 00 0F 00 FF 00   ................
0B78:0120  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0B78:0130  B8 88 0B 8E D8 BB 00 00-8E D0 BC 30 00 B9 08 00   ...........0....
0B78:0140  FF 37 83 C3 02 E2 F9 B8-00 4C CD 21 FF 36 24 21   .7.......L.!.6$!
0B78:0150  B8 E5 05 EB 12 90 FF 36-24 21 B8 ED 05 EB 08 90   .......6$!......
0B78:0160  FF 36 24 21 B8 F5 05 50-E8 09 5F 83 C4 04 FF 76   .6$!...P.._....v
0B78:0170  04 FF 36 24 21 E8 BC 44-83 C4 04 80 3E 60 08 00   ..6$!..D....>`..
-
-u
0B8B:0000 B8880B        MOV     AX,0B88
0B8B:0003 8ED8          MOV     DS,AX
0B8B:0005 BB0000        MOV     BX,0000
0B8B:0008 8ED0          MOV     SS,AX
0B8B:000A BC3000        MOV     SP,0030
0B8B:000D B90800        MOV     CX,0008
0B8B:0010 FF37          PUSH    [BX]
0B8B:0012 83C302        ADD     BX,+02
0B8B:0015 E2F9          LOOP    0010
0B8B:0017 B8004C        MOV     AX,4C00
0B8B:001A CD21          INT     21
0B8B:001C FF362421      PUSH    [2124]

-g 001a

AX=4C00  BX=0010  CX=0000  DX=0000  SP=0020  BP=0000  SI=0000  DI=0000
DS=0B88  ES=0B78  SS=0B88  CS=0B8B  IP=001A   NV UP EI PL NZ AC PO NC
0B8B:001A CD21          INT     21

-d ds:0
0B88:0000  01 00 02 00 03 00 04 00-05 00 06 00 07 00 08 00   ................
0B88:0010  09 00 0A 00 0B 00 0C 00-00 00 1A 00 8B 0B 7E 05   ..............~.
0B88:0020  08 00 07 00 06 00 05 00-04 00 03 00 02 00 01 00   ................
0B88:0030  B8 88 0B 8E D8 BB 00 00-8E D0 BC 30 00 B9 08 00   ...........0....
0B88:0040  FF 37 83 C3 02 E2 F9 B8-00 4C CD 21 FF 36 24 21   .7.......L.!.6$!
0B88:0050  B8 E5 05 EB 12 90 FF 36-24 21 B8 ED 05 EB 08 90   .......6$!......
0B88:0060  FF 36 24 21 B8 F5 05 50-E8 09 5F 83 C4 04 FF 76   .6$!...P.._....v
0B88:0070  04 FF 36 24 21 E8 BC 44-83 C4 04 80 3E 60 08 00   ..6$!..D....>`..
-
mywtfmp3
[第1楼]   [ 回复时间:2011-10-05 16:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-10-03 23:41
good job!
javaimgod
[第2楼]   [ 回复时间:2012-01-23 17:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-01-10 21:29
楼主的
mov sp,30h
为什么?不理解啊
为什么不能是16
我用16也行啊
我的代码
assume cs:code

a segment

  dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh

a ends

b segment
  
  dw 0,0,0,0,0,0,0,0

b ends


code segment

start:   mov ax,a
         mov ds,ax

         mov ax,b
         mov ss,ax
         mov sp,16

         mov bx,0
         mov cx,8

s:      push [bx]
        add bx,2
        loop s
        mov ax,4c00h
        int 21h
 
code ends
end start
javaimgod
[第3楼]   [ 回复时间:2012-01-23 17:48 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-01-10 21:29
sorry没仔细看楼主的代码
楼主好像没有定义b段这样不行吧
javaimgod
[第4楼]   [ 回复时间:2012-01-23 17:52 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-01-10 21:29
楼主把a,b合定义成一个栈段了啊。好像跟题目要求不符啊。如果a与b中间还有定义数据。那这样就不行了
tomato
[第5楼]   [ 回复时间:2012-01-31 09:14 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
楼主的代码是不够灵活,但是,针对这道题目也不能算错。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved