- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章分支结构程序;控制转移类指令;;1 无条件转移指令;JMP STAT(段内直接转移)
JMP BX (段内间接转移)
JMP FAR PRT ADD2(段间直接转移)
JMP DWOD PTR[BX+ADDR3](段间间接转移)
;2 条件转移指令;(1)简单条件转移指令;;(2)无符号数条件转移指令;(3) 有符号数条件转移指令
;6.1 比较/测试分支结构程序设计;图6.1 比较/测试分支结构的两种程序流程;例6.1 内存ADR单元开始存放两个带符号字数据,编制程序,若两数同号将FLAG单元置0,否则置全1。
问题分析:
判断两数是否同号,即判断两个数的最高位是否相同,若相同即为同号。判断的方法有两种:
第一种方法:先取出一个数,判断符号是否为正,若为正,再判断另一个数的符号是否正,也为正,则两数同号,否则为异号;若第一个数的符号为负,判断另一个数的符号是否为负,也为负,则两数同号,否则为异号。;图6.2 测试两数符号程序流程图 ; DSEG SEGMENT
ADR DW 73A5H,924BH
FLAG DB ?
DSEG ENDS ;第二种方法:利用XOR指令,将两个数异或,异或结果的最高位状态为1,则说明两数异号,否则两数同号。异或结果的最高位状态反应到符号标志SF位上。如:
⊕ ⊕ ; DSEG SEGMENT
ARG DW 7654H,8A32H
FLAG DB ?
DGEC ENDS
CSEG SEGMENT
ASSUME DS:DSEC,CS:CSEG
START: MOV AX,DSEG
MOV DS,AX
MOV AX,ARG
X0R AX,ARG+2 ;两数异或
MOV AL,0 ;同号标志
JNS LOAD ;同号
DEC AL ;异号标志
LOAD: MOV FLAG,AL ;存标志
MOV AH,4CH
INT 21H
CSEG ENDS
END START;Even;在字符I/O时,常把第7位做为奇偶校验位,其意义在于字符在传输过程中,可能由于某种原因,产生数位传输错,通过设置奇偶校验位可以检查字符传输中是否出错。所谓字符代码的奇偶性系指代码中含1的个数是奇数还是偶数。例如,字符A的ASCII码为41H),其中含有2个1,即为偶性,要使之为奇性,则将最高位0变为1;同理字符C的ASCII码为43H ),其中含有3个1,即为奇性。把字符代码配制成奇校验,即使字符代码连同最高位共含有奇数个1;配制成偶校验,即使字符代码连同最高位共含有偶数个1。;图6.3 配奇校验位程序流程图;例6.3 设X为单字节带符号整数,且存于ARGX单元,计算结果Y存入RLT单元。
;1:;*****EXAM6.3*****
2:SSEG SEGMENT STACK
3:STK DB 50DUP(0)
4:SSEG ENDS
5:DSEG SEGMENT
6:ARGX DB -5
7:RLT DB ?
8:DSEG ENDS
9:CSEG SEGMENT
10: ASSUME CS:CSEG,DS:DSEG
11: ASSUME SS:SSEG
12:BEGIN: MOV AX,DSEG
13: MOV DS,AX
14: MOV AX,SSEG
15: MOV SS,AX
16: MOV SP,SIZESTK;17: MOV AL,ARGX ;取X值
18: AND AL,AL ;置标
文档评论(0)