读寄存器内容的源代码.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
读寄存器内容的源代码

读寄存器内容的源代码 我的环境是WINXP+MASM5.0通过编译生成可执行文件,双击,提示写入文件成功,按任意键推出。在程序的同一目录下的TEMP.TXT中已经写入了: ABCD 4645 4F5B FFFF 四行用来测试而显示送入寄存器的值。 以下是完整的代码, MovToVar Macro m_Reg,Asc_AX ?? mov bx,m_Reg ?? call ConvertToAsc ?lea si,CAscii ?lea di,Asc_AX ?mov cx,4d ?rep movsb EndM data segment ?mAX? dw 0 ?mBX? dw 0 ?mCX? dw 0 ?mDX? dw 0 ? ?AscAX? db 4 dup(?),0dh,0ah ?AscBX? db 4 dup(?),0dh,0ah ?AscCX? db 4 dup(?),0dh,0ah ?AscDX? db 4 dup(?),0dh,0ah ?WriteBytes EQU $-AscAX ? ?CAscii? db 5 dup(?)? ;临时存放转化结果 ? ?filename db temp.txt$,0h ?filehandle dw ? ?ferr_num1 db Error occurred when create file!$ ? ferr_num2 db Write file error!$ ? tssaveok db Write register value to file success.$ ? tsexit? db Press any key to exit...$ ? data ends Code segment ?assume cs:code,ds:data,es:data ? ?Main proc far ??? start: ?push ds ?sub ax,ax ?mov ax,data ?mov ds,ax ?mov es,ax ?sub ax,ax ? ?mov ax,0ABCDh ;四个测试数据 ?mov bx,4645h ?mov cx,4F5Bh ?mov dx,0FFFFh ??? ??? call SaveRegToMem ??? call MovAll ??? call SaveToFile ? ?call NextLine ?lea dx,tsexit ?call ShowString ?? waittoexit: ?? mov ah,0h ?? int 16h ?? exitprogram: ?? mov ah,4ch ?? int 21h ?Main Endp ? ? ?MovAll proc near ? push ax ? push bx ? push cx ? push dx ? MovToVar mAX,AscAX ? MovToVar mBX,AscBX ? MovToVar mCX,AscCX ? MovToVar mDX,AscDX ? pop dx ? pop cx ? pop bx ? pop ax ? ret ?MovAll endp ? ? ?SaveRegToMem proc near ? mov mAX,ax ? mov mBX,bx ? mov mCX,cx ? mov mDX,dx ? ret ?SaveRegToMem endp ? ? ?ShowString proc near ?;显示DX所指的字符串 ?push ax ?mov ah,09h ? int 21h ?pop ax ? ret ?ShowString endp ? ?NextLine proc near ?;回车换行 ? mov ah,02h ? mov dl,0dh ? int 21h ? ? mov ah,02h ? mov dl,0ah ? int 21h ? ret ?NextLine endp??? ? ? ?ConvertToAsc proc near ?;参数为BX ?;将BX中的二进制数据转化成相应的ASCII码, ?;并将结果保存到CAscii[] ? PUSH AX ? PUSH CX ? PUSH DX ? mov bp,0h ? mov ch,4h? ?xh:? ? mov cl,4h ? rol bx,cl ? mov al,bl ? and al,0fh ? add al,30h ? cmp al,3ah ;whether 9(Ascii:49) ? jl toCascii ;if not then store to CAscii ? add al,7h ;if yes then convert it to

文档评论(0)

803322fw + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档