鱼C论坛

 找回密码
 立即注册
查看: 2601|回复: 5

王爽汇编语言 第五章实验,帮帮忙

[复制链接]
发表于 2013-5-31 17:57:16 | 显示全部楼层 |阅读模式
5鱼币
下面是题和答案,对于答案我有几点不明白
问题1:答案2比答案1中的cs多了一个1 ,这里是指code比cs 多了一个字节吗?
问题2:复制程序从哪里开始,到哪里结束,怎么算出大小程序大小?
问题3:答案3中说:因为在载入程序时,cx保存程序的长度,减去5是为减去mov ax,4c00h和int 21h的长度    我想问mov ax,4c00h 和int 21h长度是5个字节吗?怎么算的?

(3)下面的程序功能是将“mov ax,4c00h"之前的指令复制到内存0:200处,补全程序。上机调试,跟踪运行结果。
assume cs:code   
code segment   
     mov ax, code ;或mov ax, cs  
     mov ds,ax   
     mov ax,0020h   
     mov es,ax   
     mov bx,0   
     mov cx, 18h   ;或mov cx, 17h    ;或sub cx,5
  s: mov al,[bx]   
     mov es:[bx],al   
     inc bx   
     loop s   
     mov ax,4c00h   
     int 21h   
code ends   
end
此题有多个答案,因为mov用在寄存器之间传送数据的指令是2个字节,用在寄存器和立即数之间是3个字节
答案1:mov ax,cs  (占2个字节)  
     mov cx,17
答案2:mov ax,code (占3个字节)
     mov cx,18
答案3:mov ax,cs 或mov ax,code
     把mov cx,改成 sub cx,5
(因为在载入程序时,cx保存程序的长度,减去5是为减去mov ax,4c00h和int 21h的长度)

最佳答案

查看完整内容

楼主的第一个问题,多的一个字节是 汇编指令转换成机器码时候,第2个答案的机器码 要比 第一个答案的机器码多1一个字节 第二个问题,复制程序从mov ax ,__这句开始,一直到mov ax,4c00h结束,不包括mov ax,4c00h这句。这里的大小计算是根据debug上机之后 对于mov ax,4c00h这句的ip 与mov ax,__这句的ip差值 第三个问题 和上面的一个算法,通过上级对比两句的ip值,相减可以得到。如果楼主可以把相应的汇编语句转换成机 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-31 17:57:17 | 显示全部楼层
楼主的第一个问题,多的一个字节是 汇编指令转换成机器码时候,第2个答案的机器码 要比 第一个答案的机器码多1一个字节

第二个问题,复制程序从mov ax ,__这句开始,一直到mov ax,4c00h结束,不包括mov ax,4c00h这句。这里的大小计算是根据debug上机之后 对于mov ax,4c00h这句的ip 与mov  ax,__这句的ip差值

第三个问题 和上面的一个算法,通过上级对比两句的ip值,相减可以得到。如果楼主可以把相应的汇编语句转换成机器码,也可以知道,这两句转换成机器码之后是占5个字节的

如果还有什么不明白,可以再问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-5-31 19:08:13 | 显示全部楼层
0C79:0000 B8790C        MOV     AX,0C79

0C79:0003 8ED8          MOV     DS,AX

0C79:0005 B82000        MOV     AX,0020

0C79:0008 8EC0          MOV     ES,AX

0C79:000A BB0000        MOV     BX,0000

0C79:000D B91800        MOV     CX,0018

0C79:0010 8A07          MOV     AL,[BX]

0C79:0012 26            ES:

0C79:0013 8807          MOV     [BX],AL

0C79:0015 43            INC     BX

0C79:0016 E2F8          LOOP    0010

B8004C        MOV     AX,4C00

0C79:001B CD21          INT     21
看最后两句的汇编转换成机器码是 B8004C 3个字节 和CD21 2个字节
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-5-31 19:28:07 | 显示全部楼层

谢谢,帮我解答,:P
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-5 04:27:26 | 显示全部楼层
块五点了  我竟然还没升级  不好意思只能先顶下你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-5 13:13:36 | 显示全部楼层
顶顶楼主 向你学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 11:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表