双面人/kuk 发表于 2012-3-16 01:20:19

实验4中的18h是怎么算出来的啊,提示没看懂,求帮忙

(3) 下面的程序的功能是将“mov ax,4c00h”之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
assume cs:code
code segment
   mov ax,code;code为所填写的数据
   mov ds,ax
   mov ax,0020h
   mov es,ax

   mov bx,0
   mov cx,18h   ;18h为所填写的数据
s:   mov al,
   mov es:,al
   inc bx
   loop s

   mov ax,4c00h
   int 21h
code ends
end

wAterLoo 发表于 2012-3-16 01:20:20

本帖最后由 wAterLoo 于 2012-3-16 05:18 编辑

0B71:0000 B8710B      MOV   AX,0B71
0B71:0003 8ED8          MOV   DS,AX
0B71:0005 B82000      MOV   AX,0020
0B71:0008 8EC0          MOV   ES,AX
0B71:000A BB0000      MOV   BX,0000
0B71:000D B91800      MOV   CX,0018
0B71:0010 8A07          MOV   AL,
0B71:0012 26            ES:
0B71:0013 8807          MOV   ,AL
0B71:0015 43            INC   BX
0B71:0016 E2F8          LOOP    0010
0B71:0018 B8004C      MOV   AX,4C00 ;也就是把这之前的代码复制到0:200
0B71:001B CD21          INT   21
0B71:001D 2BC6          SUB   AX,SI
0B71:001F 2E            CS:
0B71:0020 01065791      ADD   ,AX

你想想从0B71:0000 到 0B71:0018之间需要需要多少字节呢?



-

双面人/kuk 发表于 2012-3-16 12:23:07

wAterLoo 发表于 2012-3-16 05:12 static/image/common/back.gif
0B71:0000 B8710B      MOV   AX,0B71
0B71:0003 8ED8          MOV   DS,AX
0B71:0005 B82000   ...

谢谢啊,讲的真详细,我懂了
页: [1]
查看完整版本: 实验4中的18h是怎么算出来的啊,提示没看懂,求帮忙