- 1、本文档共166页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章8086指令系统1(deng)
上机过程 1 打开记事本,输入原程序,并存盘为p1.asm 2 编译:masm p1.asm 3 连接:link p1.obj 4 执行:(1)直接执行 p1 (2)进入debug执行 Debug p1.exe -u 显示调入的程序 -g=开始地址 结束地址 -t 单步运行 -d 查看存储单元内容 -r 显示所有寄存器内容 -q 退出debug 【例3.18】 用查表的方法将一位十六进制数转换成相应的ASCII码 算法分析: 1)0~9数字对应的ASCII码为30H~39H,A~F对应的ASCII 码为41H~46H,将0~F的ASCII码存入TABLE表中。 2)待转换数 0AH存入HEX1中。 3)表首地址加上待转换数所对应的ASCII码存储单元地址为所求的ASCII码。 程序如下: DATA SEGMENT TABLE DB 30H,31H,32H,33H,34H,35H,36H,37H, DB 38H,39H,41H,42H,43H,44H,45H,46H, HEX1 DB 0AH ASC1 DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX, DATA MOV DS, AX MOV BX, OFFSET TABLE MOV AH, 0 MOV AL, HEX1 XLAT ;p68 MOV ASC1, AL MOV AH,4CH INT 21H CODE ENDS ENDS START 3.4.2 分支程序设计 有两种基本结构: 1.简单分支结构 简单分支结构有单分支和多分支结构,如图。一般用比较和条件转移两条指令来实现分支。 例3.19】变量X中为一任意有符号字节数,若X为负数,则将其取补码,否则X和Y变量相加并将和放在AX中。 解:算法分析 1) 本题涉及2个变量X 和Y ,在数据段定义。 2) 当X<0 时,求补码,用NEG 3) 当X>=0时,X与Y相加,其和放在AX中。 4) 运算涉及比较CMP、求补NEG和加法ADD。 程序如下: DATA SEGMENT X DB ? ; 6用6换 Y DB ? ; 2用2换 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,0 MOV AL,X CMP AL,AH JGE LP1 NEG AL MOV X,AL JMP LP2 LP1: ADD AL,Y ADC AH,0 LP2: MOV AH,4CH INT 21H CODE ENDS ENDS 【例3.20】求符号函数,设 X 在-128~+127之间。 解:算法分析 1) 本题涉及2个变量X 和Y ,在数据段定义。 2) 当X0时,Y单元为1。 3) 当X0时,Y单元为0FFH。(FF为 -1的补码) 4) 当X=0时,Y单元为0。 X Y 程序如下: DATA SEGMENT X DB 10H Y DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,X MOV AH,0 CMP AL,AH JL SMALL JZ SAVE1 INC AH JMP SAVE1 SMALL: MOV AH,OFFH SAVE1: MOV Y,AH MOV AH,
文档评论(0)