第4讲 变量定义及常用伪指令2.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4讲 变量定义及常用伪指令2

统计一个字变量中包含数据元素的个数 .model small .stack .data v_word dw 3322h,6*4,3 dup (2),?, ab count equ ($-v_word)/2 .code .startup mov dl,count add dl,30h mov ah,02h int 21h .exit 0 end 字变量和字常量的定义: WNUM EQU 5678H ;定义WNUM为常量 COUNT DW 20H ;定义COUNT变量,假设在数据段的偏移地址为10H 字变量和字常量的应用: MOV AX,[BX+SI+WNUM] MOV AX,COUNT MOV AX,[SI+COUNT] LEA BX,COUNT 字变量和字常量 ; MOV AX,[BX+SI+5678H] ; MOV AX,[0010H] ; MOV AX,COUNT[SI] ; MOV AX,[SI+10H] ; LEA BX,[0010H] 定位伪指令 定位伪指令控制数据的偏移地址 ORG 参数 ORG伪指令是将当前偏移地址指针指向参数表达的偏移地址: ORG 100h ;从100h处安排数据或程序 ORG $+10 ;使偏移地址加10,即跳过10个字节空间 MASM中,符号“$”表示当前偏移地址值 array DB 12,34,56 len equ $-array ;记录变量array所占字节数 例题 .model small .stack .data X dw 5 Y dw 6 Z dw 7 W dw ? .code .startup mov ax,X add ax,Y add ax,Z mov W,ax .exit 0 end 设有3个字变量X,Y和Z,初值分别为5,6和7,试求出三者之和,并存入字变量W中。 3 变量和标号的属性 ① 地址属性 标号和名字对应存储单元的逻辑地址 逻辑地址包括:段地址和偏移地址 ② 类型属性 标号、子程序名的类型可以是NEAR(近)和FAR(远),分别表示段内或段间 变量名的类型可以是BYTE(字节)、WORD(字)和DWORD(双字)等 地址操作符 取得名字或标号的段地址和偏移地址两个属性 [ ] 将括起的表达式作为存储器地址 $ 当前偏移地址 : 采用指定的段地址寄存器 OFFSET 名字/标号 返回名字或标号的偏移地址 SEG 名字/标号 返回名字或标号的段地址 类型名 PTR 名字/标号 PTR操作符使名字或标号具有指定的类型 类型名可以是 BYTE/WORD/DWORD/FWORD/QWORD/TBYTE 或者是NEAR/FAR mov al,byte ptr w_var ;w_var是一个字变量 使用PTR操作符,可以临时改变名字或标号的类型 4 字符串的输入输出方法 同字符的输入输出类似,字符串的输入输出也采用DOS提供给用户的用于调用系统功能的21H号中断来实现。 通常按照如下4个步骤进行: ⑴ 在AH寄存器中设置系统功能调用号 ⑵ 在指定寄存器中设置入口参数 ⑶ 执行指令INT 21H(或ROM-BIOS的中断向量号)实现中断服务程序的功能调用 ⑷ 根据出口参数分析功能调用执行情况 字符串输出的功能调用 DOS功能调用INT 21H 功能号:AH=09H 入口参数: DS:DX=欲显示字符串在主存中的首地址 字符串应以$(24H)结束 功能:在显示器输出指定的字符串 可以输出回车(0DH)和换行(0AH)字符产生回车和换行的作用 例:显示字符串 .model small .stack .data buf1 db Hello,,0dh,0ah, this is an example.$,0dh,0ah buf2 db --END--$ .code .startup mov dx, offset buf1 mov ah, 9 int 21h lea dx, buf2 mov ah, 9 int 21h .exit 0 end 如果去掉“$”显示的结果又会是什么? 字符串输入的功能调用 DOS功能调用INT 21H 功能号:AH=0AH 入口参数:DS:DX=缓冲区首地址 执行该功能调用时,用户按键,最后用回车确认 本调用可执行全部标准键盘编辑命令;用户按回车键结束输入,如按Ctrl+Break或Ctrl+C则中止 关键要定义好缓冲区 缓冲区的定义 第1字节事先填入最多欲接收的字符个数(包括回车字符,可以是1~255) 第2字节将存放实际输入的字符个数(不包括回车符) 第3字节开始将存放输入的字符串 实际输入的字符数多于定义数时,多出的字

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档