汇编 – “LES”8086指令未按预期工作
发布时间:2020-12-14 01:43:34 所属栏目:Windows 来源:网络整理
导读:我是8086大会的初学者.我正在学习我在旧货店里发现的一本90年代早期的旧书.我认为像1992年那样编程可能会很有趣. 无论如何,我已经完成了这本书,现在我已经在我的旧Win95笔记本电脑上的命令提示符下编写了一些程序. 切换到使用’les’指令后,我遇到了这个问题
我是8086大会的初学者.我正在学习我在旧货店里发现的一本90年代早期的旧书.我认为像1992年那样编程可能会很有趣.
无论如何,我已经完成了这本书,现在我已经在我的旧Win95笔记本电脑上的命令提示符下编写了一些程序. 切换到使用’les’指令后,我遇到了这个问题没有按预期工作的问题.但是,当我手动设置适当地址的ES和DI寄存器时,它确实有效. ;************************************ ; STACK SEGMENT ;************************************ TheStack SEGMENT STACK ;STACK specifies the stack segment db 64 dup (THESTACK) ;reserves 512 bytes for the stack TheStack ENDS ;************************************ ; END STACK SEGMENT ;************************************ ;************************************ ; DATA SEGMENT ;************************************ Data SEGMENT BufAddr DD 0b8000000h Data ENDS ;************************************ ; END DATA SEGMENT ;************************************ ;************************************ ; CODE SEGMENT ;************************************ Code SEGMENT assume CS:Code,DS:Data MAIN PROC Start: ;execution begins ;setup input for stosw les di,DWORD PTR BufAddr mov cx,0f4fh ;cx contains the number of times stosw will loop cld ;draw smileys mov ax,0f01h ;0f is the text attribute for white on black,01 is the hex code for a smiley rep stosw ;write it all to the buffer ;EXIT mov AH,4CH ;Setup the terminate dos process service mov AL,0 ;ERRORLEVEL takes 0 int 21H ;return to dos MAIN ENDP Code ENDS ;************************************ ; END CODE SEGMENT ;************************************ END Start ;Start is the Main procedure 好的,所以这个程序应该在命令提示符窗口中绘制一堆笑脸ascii字符,但它不起作用. 当我用以下代码行替换’LES’行时,它确实有效. mov bx,0b800h mov es,bx xor di,di 与BufAddr变量一起使用时,’LES’指令是否与前三行代码完全相同? 当我调试编译的exe(我使用MASM 6.11作为编译器)时,我注意到ES和DI寄存器没有加载正确的值.
在加载段和从RAM偏移之前,需要将DS寄存器设置为实际指向数据段.默认情况下,DS指向您的PSP,而PSP不是您希望它指向的位置.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在Windows中使用PuTTY创建SSH隧道?
- 使用TFS 2010时的DLL引用
- 用于管理IIS / Windows环境的代码部署/版本控制的工具
- windows-store-apps – 无法打开数据库文件Windows Store A
- office365 – Skype for Business Web SDK示例无效
- windows – gflags对话框无法打开
- windows-vista – 以编程方式禁用设备管理器中的设备(Vista
- dos脚本》
- windows – “Deny Logon Locally”效果
- 为什么Windows身份验证/模拟在使用iis 7.5 / windows 7 /的
推荐文章
站长推荐
- windows-7 – 一切都说Applocker应该工作:为什么
- windows-mobile – 新手机上的Windows Phone 8错
- Windows – Win32:如何将字符串转换为日期?
- windows-server-2008-r2 – Windows Server 2008
- windows – powershell 2.0重定向文件处理异常
- 解密Microsoft Outlook的客户端规则二进制定义
- 运行Windows XP的Intel x86机器上的内存位置1是什
- xaml – 如何将我的视图模型中的富文本(FlowDocu
- Windows中的文本编辑器是否有实时更新?
- 出于好奇,我想尝试一下Cobol,在Windows上安装最简
热点阅读