|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天学到loap指令了,视频中又讲到一个题目,意思就是先修改2000:1000的值和2000:1001的值,再执行相应的步骤,后来我自己调试的时候老师mov ax,[bx]的时候错误,老是E1E,开始以为是程序写错了,但是仔细对照一遍是对的,然后以为是那段内存空间被别的程序占用了,换了一段内存1000:1000和1000:1001,到mov ax,[bx]的时候结果还是E1E,最后发现了一个小问题,就是小甲鱼视频中debug的时候 r指令显示出来的数据都是 十进制,而我的都是16进制。所以程序的前几步都是没有错,但是到了mov ax,[bx]这一步的时候,bx的值是03E8(也就是1000对应的16进制),ds的值也是03E8,所以这时候就把03E8:03E8地址的值付给了ax,而不是我所期望的1000:1000的值给了ax。所以开始的时候应该把1000:1000先计算成对应的16进制的3E8,在3E8:3E8和3E8:3E9出的值修改才不会出错。
最后我想问一下怎么把自己的debug显示的数据都变成10进制的状态,百度了一大堆全都不是自己想要的结果。顺便附上程序的代码
assume cs:abc
abc segment
start: mov ax,1000
mov ds,ax
mov bx,1000
mov ax,[bx]
inc bx
inc bx
mov [bx],ax
inc bx
inc bx
mov [bx],ax
inc bx
mov [bx],al
inc bx
mov [bx],al
abc ends
end start |
|