请教一段汇编

Aylazhang 2007-09-05 04:07:15
网上遇到一个题目,是关于汇编的,请达人指教。

要求:
Find out what the BL registry value is at each block and convert it to ascii. The solution is the concatenation of all the ascii values.

------------
mov AX,171
sub AX,154
mov CX,AX
shl AX,2
sub AX,CX
mov BL,AL

mov BX,101
mov CL,42h
sub BX,13h
shr CX,1
sub BL,CL

mov AX,13h
mov BX,3
mul BL
mov BL,AL

mov CX,7
mov AX,0C8h
idiv CL
add AL,01Bh
mov BL,AL

mov CX,12h
sub CX,0Ah
shl CX,1
mov BX,CX
shl CX,2
add CX,BX
sub CL,5
mov BL,CL
...全文
142 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2007-09-05
  • 打赏
  • 举报
回复
如果你用debug 中的 -a 输入指令的话:

-a
mov AX,171

那么debug会把171解释成16进制数,而不是题意中的10进制。这点要注意。
Aylazhang 2007-09-05
  • 打赏
  • 举报
回复
我刚进入debug
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=13B3 ES=13B3 SS=13B3 CS=13B3 IP=0100 NV UP EI PL NZ NA PO NC
13B3:0100 0000 ADD [BX+SI],AL DS:0000=CD

以后再进行mov ,sub等操作,观察到bl内容跟你给出的不一样。
这个ADD [BX+SI],AL 我也没有执行啊,请问怎样清理一下 debug的环境??对debug不熟悉:)
大熊猫侯佩 2007-09-05
  • 打赏
  • 举报
回复
AX=0044 BX=0000 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BC9 ES=0BC9 SS=0BD9 CS=0BD9 IP=000C NV UP EI PL NZ AC PE NC
0BD9:000C 2BC1 SUB AX,CX
-p

AX=0033 BX=0000 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BC9 ES=0BC9 SS=0BD9 CS=0BD9 IP=000E NV UP EI PL NZ NA PE NC
0BD9:000E 8AD8 MOV BL,AL
-p

AX=0033 BX=0033 CX=0011 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=0BC9 ES=0BC9 SS=0BD9 CS=0BD9 IP=0010 NV UP EI PL NZ NA PE NC
0BD9:0010 8AD3 MOV DL,BL
Aylazhang 2007-09-05
  • 打赏
  • 举报
回复
我运行了第一段:
mov AX,171
sub AX,154
mov CX,AX
shl AX,1
shl AX,1
sub AX,CX
mov BL,AL

然后 -r没有看到bl里有值啊
大熊猫侯佩 2007-09-05
  • 打赏
  • 举报
回复
将 shl AX,2 转换成以下两条语句:


shl ax,1
shl ax,1
Aylazhang 2007-09-05
  • 打赏
  • 举报
回复
我用debug -a指令
但是执行到第四行:shl AX,2的时候,有error,请问什么原因?
大熊猫侯佩 2007-09-05
  • 打赏
  • 举报
回复
0 用debug过一遍,留意每个block最后bl的值;

1 偷懒的话每个block末尾加上一下一段,运行即可:


mov dl,bl
mov ah,02
int 21h
Aylazhang 2007-09-05
  • 打赏
  • 举报
回复
楼上高手啊,请问怎么调试?怎么得出的结果?谢谢先
大熊猫侯佩 2007-09-05
  • 打赏
  • 举报
回复
什么东西密码么? 3197K

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧