大佬教程收集整理的这篇文章主要介绍了汇编 – “LES”8086指令未按预期工作,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
无论如何,我已经完成了这本书,现在我已经在我的旧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’行时,它确实有效.
@H_173_19@mov bx,0b800h mov es,bx xor di,di与BufAddr变量一起使用时,’LES’指令是否与前三行代码完全相同?
当我调试编译的exe(我使用MASM 6.11作为编译器)时,我注意到ES和DI寄存器没有加载正确的值.
以上是大佬教程为你收集整理的汇编 – “LES”8086指令未按预期工作全部内容,希望文章能够帮你解决汇编 – “LES”8086指令未按预期工作所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。