狂潮丶 发表于 2013-7-29 15:30:48

Assembly language 检测点3.2

检测点3.2
(1)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中。
mov ax,1000H
mov ds,ax
mov ax,2000H
mov ss,ax   
mov sp,10h   
push
push
push
push
push
push
push
push
检测点3.2
(2)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中。
mov ax,2000H
mov ds,ax
mov ax,1000H
mov ss,ax   
mov sp,0   
pop
pop
pop
pop
pop
pop
pop
pop
实验2 用机器指令和汇编指令编程
(1)使用DEBUG,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。
mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100

mov ax,    ;ax= 5BEAH
add ax,    ;ax= 5CCAH
mov bx,    ;bx= 31F0H
add bx,    ;bx= 6122H

push ax       ;sp= 00FEH ,修改的内存单元地址是 2200:00FE 内容为 5CCAH
push bx       ;sp= 00FCH ,修改的内存单元地址是 2200:00FC 内容为 6122H
pop ax      ;sp= 00FCH ,ax= 6122H
pop bx      ;sp= 00FEH ,bx= 5CCAH

push       ;sp= 00FEH ,修改的内存单元地址是 2200:00FE 内容为 31F0
push       ;sp= 00FCH ,修改的内存单元地址是 2200:00FC 内容为 2F32

此实验答案不定,需根据每台机器的实际运行情况。

Microsoft(R) Windows DOS
(C)Copyright Microsoft Corp 1990-2001.
C:DOCUME~1ADMINI~1>debug
-a
0C1C:0100 mov ax,ffff
0C1C:0103 mov ds,ax
0C1C:0105 mov ax,2200
0C1C:0108 mov ss,ax
0C1C:010A mov sp,0100
0C1C:010D mov ax,
0C1C:0110 add ax,
0C1C:0114 mov bx,
0C1C:0118 add bx,
0C1C:011C push ax
0C1C:011D push bx
0C1C:011E pop ax
0C1C:011F pop bx
0C1C:0120 push
0C1C:0124 push
0C1C:0128
-r
AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100   NV UP EI PL NZ NA PO NC
0C1C:0100 B8FFFF      MOV   AX,FFFF
-t
AX=FFFFBX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103   NV UP EI PL NZ NA PO NC
0C1C:0103 8ED8          MOV   DS,AX
-t
AX=FFFFBX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=0C1CCS=0C1CIP=0105   NV UP EI PL NZ NA PO NC
0C1C:0105 B80022      MOV   AX,2200
-t
AX=2200BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=0C1CCS=0C1CIP=0108   NV UP EI PL NZ NA PO NC
0C1C:0108 8ED0          MOV   SS,AX
-t
AX=2200BX=0000CX=0000DX=0000SP=0100BP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=010D   NV UP EI PL NZ NA PO NC
0C1C:010D A10000      MOV   AX,                        DS:0000=5BEA
-d ffff:0 f
FFFF:0000EA 5B E0 00 F0 31 32 2F-32 35 2F 30 37 00 FC 59   .[...12/25/07..Y
-t
AX=5BEABX=0000CX=0000DX=0000SP=0100BP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=0110   NV UP EI PL NZ NA PO NC
0C1C:0110 03060200      ADD   AX,                        DS:0002=00E0
-t
AX=5CCABX=0000CX=0000DX=0000SP=0100BP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=0114   NV UP EI PL NZ NA PE NC
0C1C:0114 8B1E0400      MOV   BX,                        DS:0004=31F0
-t
AX=5CCABX=31F0CX=0000DX=0000SP=0100BP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=0118   NV UP EI PL NZ NA PE NC
0C1C:0118 031E0600      ADD   BX,                        DS:0006=2F32
-t
AX=5CCABX=6122CX=0000DX=0000SP=0100BP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=011C   NV UP EI PL NZ NA PE NC
0C1C:011C 50            PUSH    AX
-t
AX=5CCABX=6122CX=0000DX=0000SP=00FEBP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=011D   NV UP EI PL NZ NA PE NC
0C1C:011D 53            PUSH    BX
-t
AX=5CCABX=6122CX=0000DX=0000SP=00FCBP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=011E   NV UP EI PL NZ NA PE NC
0C1C:011E 58            POP   AX
-t
AX=6122BX=6122CX=0000DX=0000SP=00FEBP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=011F   NV UP EI PL NZ NA PE NC
0C1C:011F 5B            POP   BX
-t
AX=6122BX=5CCACX=0000DX=0000SP=0100BP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=0120   NV UP EI PL NZ NA PE NC
0C1C:0120 FF360400      PUSH                               DS:0004=31F0
-t
AX=6122BX=5CCACX=0000DX=0000SP=00FEBP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=0124   NV UP EI PL NZ NA PE NC
0C1C:0124 FF360600      PUSH                               DS:0006=2F32
-t
AX=6122BX=5CCACX=0000DX=0000SP=00FCBP=0000SI=0000DI=0000
DS=FFFFES=0C1CSS=2200CS=0C1CIP=0128   NV UP EI PL NZ NA PE NC
0C1C:0128 16            PUSH    SS
-q

88082654 发表于 2013-11-6 21:44:37

第一道题能详细点吗,,想了半天不知道,大神,先谢谢了

 发表于 2013-11-6 21:45:52

我看看咯!!

hexiaofengye 发表于 2015-6-20 00:04:45

但是最后一个问题,执行完栈的布局后,还没有进行push 指令,栈的内容已经被改变了,我刚学到哪里。想不通,各位学友可以解释一下吗?

fast 发表于 2015-6-20 03:17:09

作业

zmxfx 发表于 2016-7-30 00:05:21

本帖最后由 zmxfx 于 2016-7-30 00:06 编辑

hexiaofengye 发表于 2015-6-20 00:04
但是最后一个问题,执行完栈的布局后,还没有进行push 指令,栈的内容已经被改变了,我刚学到哪里。想不通 ...

mov bx,1000h
mov ss,bx
mov sp,0

这三段指令执行后,把栈地址指向1000h:0000h,后面执行pop指令等于是把内存从10000h到1ffffh视为一个栈,题目只是要将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中,所以不管里面的数据什么。


刚学到这,一点心得。有不对的地方希望鱼友批评指正!!

hexiaofengye 发表于 2016-7-31 23:24:22

多谢

hexiaofengye 发表于 2016-8-16 22:49:26


多谢

hexiaofengye 发表于 2016-9-9 15:43:03

谢谢。朋友

qlbf130 发表于 2018-7-20 20:24:36

楼主,
检测点3.2   
(1)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中。
(2)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中。
(1)和(2)问题一样,应该是写错了。
页: [1]
查看完整版本: Assembly language 检测点3.2