汇编语言程序设计10概要1.pptVIP

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

同学们好!;字符串比较 ;键盘中断处理流程 ;1、将调用参数装入指定的寄存器中; 2、BIOS或DOS功能号装入AH; 3、如需子功能号,把它装入AL; 4、按中断号调用BIOS中断(INT); 5、检查或取得返回参数。; BIOS键盘中断( INT 16H);例: 输入字符串到缓冲区STRING DATA SEGMENT MAXLEN DB 32 MAXLEN DB 32 ,0, 32 DUP(?) ACTLEN DB ? MAXLEN DB 32 ,33 DUP(?) STRING DB 32 DUP(?) DATA ENDS CODE SEGMENT … LEA DX,MAXLEN MOV AH,0AH INT 21H … CODE ENDS END;菩提;; 接收键盘输入的字符串, DS:DX=缓冲区首址 LEA DX,BUF MOV AH,0AH INT 21H ;---取键入字符串的实际长度,在键入的字符串后添加字符--- MOV AX,0 MOV AL,ACTL MOV SI,AX LEA BX,STRSS MOV [BX+SI],BYTE PTR $ ;在键入的字符串后加‘$’ ;-----显示键入的字符串---- LEA DX,STRSS MOV AH,9 INT 21H ;CMPSB //字节串比较(SI)-(DI) CMPSW //字串比较(SI+1)(SI) - (DI+1)(DI) 把由SI指向的数据段中的一个字节或字与由DI指向的附加段 中一个字节或字相减,不保留结果,只根据结果置标志位。 1)((SI))-((DI)) 2)字节操作:(SI)-(SI)+-1,(DI)-(DI)+-1 字操作:(SI)-(SI)+-2,(DI)-(DI)+-2 指令把由(SI)指向的数据段中的一个字(或字节)与由(DI)指向 的附加段中的一个字(或字节)相减,但不保存结果,只根据 结果设置条件码,指令其它特性和MOVS指令的规定相同。;一般说来,有时缓冲区中的串字符需要逐次取出时 CLD(CLear Direction flag) 清除方向标志指令 格式:CLD 执行操作:令DF=0,其后[SI],[DI]执行增量操作 该指令使DF=0,在执行串操作指令时可使地址自动增量 STD(SeT Direction flag) 设置方向标志指令 格式:STD 执行操作:令DF=1,其后[SI],[DI]执行减量操作 该指令使DF=1,在执行串操作指令时可使地址自动减量。 REPE/REPZ和REPNZ/REPNE联合工作的CMPSB指令;;-----比较字符串1、2---- mov ax,0 mov si,ax mov di,ax lea si,STRSS lea di,STRSS2 cld ;DF=0 mov cx,10 repz cmpsb jz match lea dx,mess2 jmp disp match: mov dx,offset mess1 disp: mov ah,9 int 21h JMP LP;判定鼠标的状态可以用 INT 33H 的0函数 如:MOV AX, 0 INT 33H CMP AX, 0 JE EXIT MOV M_BUTTON, BX 若 AX = 0,表示没有鼠标可使用,若AX = FFFFH,表示有鼠标可以使用 ,并且会将鼠标的按钮数存到BX 中。 INT 33H 的01函数用于显示鼠标的光标 如:MOV AX, 01 INT 33H 在调用过后,鼠标会显示出来;在图形界面会显示 箭头;在文字编辑界面, 会显示一个长方块表示鼠标的位置,颜色是背景的相反颜色;;得到光标的坐标用3函数, (在80*25的模式下,象数是640*200) 调用中断过后, CX 储存水平位置, DX 储存垂直位置; BX 储存按钮(BUTTON)的状态, D0 是左按钮, D1 是右按钮, D2 是中间按钮, 如果是按下的话是1, 没按的话是0; CX 的范围为0-639, DX 为0

文档评论(0)

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

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

1亿VIP精品文档

相关文档