资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,例,5 ASCII,码转换成二进制数的程序。,将一个,4,位,ASCII,码数字(十六进制)转换成二进制数,,ASCII,码数字放在以,ASCSTG,为首地址的内存单元中,(,共有,4,位,),,转换结果放入以,BIN,为首地址的内存单元中。,DATA SEGMENT,ASCSTG DB5,,,A,,,6,,,1,BIN DB 2DUP(0),DATA ENDS,STACK SEGMENTPARASTACKSTACK,DB100 DUP(?),STACK ENDS,CODE SEGMENT,ASSUMECS:CODE,DS:DATA,SS:STACK,ASCB:MOV AX,DATA,MOV DS,AX,MOV CL,4,MOV CH,CL,MOV SI,OFFSETASCSTG,CLD,XOR AX,AX,XOR DX,DX,ASCB1:LODS ASCSTG,AND AL,7FH,CMP AL,0,JL ERROR,CMP AL,9,JG ASCB2,SUB AL,30H,JMP SHORTASCB3,ASCB2:CMP AL,A,JL ERROR,CMP AL,F,JG ERROR,SUB AL,37H,ASCB3:ORDL,AL,ROR DX,CL,DECCH,JNZASCB1,MOVWORDPTRBIN,DX,MOV AH,4CH,INT 21H,CODE ENDS,3.4.7,汇编语言程序举例,例,1,二进制加法程序。,两个多字节的二进制数分别放在以,ADD1,和,ADD2,为首地址的存贮单元中,两个数的字长度放在,CONT,单元中。最后相加结果放在以,SUM,为首地址的单元中。所有数的低字节在前,高字节在后。,DATA SEGNENT,ADD1 DBFEH,,,86H,,,7CH,,,44H,,,56H,,,1FH,ADD2 DB56H,,,49H,,,4EH,,,0FH,,,9CH,,,22H,SUM DB 6 DUP(0),CONT DB3,DATA ENDS,STACK SEGMENT PARA STACKSTACK,DB 100DUP(?),STACK ENDS,CODE SEGMENT,ASSUME CS,:,CODE,,,DS,:,DATA,,,ES,:,DATA,,,SS,:,STACK,MADDB,:,MOV AX,,,DATA,MOV DS,,,AX,;,初始化数据段寄存器,MOV ES,,,AX,;,初始化辅助段寄存器,MOV SI,,,OFFSET ADD1,;,被加数地址,SI,MOV DI,,,OFFSET ADD2,;,加数地址,DI,MOV BX,,,OFFSETSUM,;,和地址,BX,MOV CL,,,BYTE PTR CONT,MOV CH,,,0,;,初始化相加字长度,CLC,MADDB1,:,MOV AX,,,SI,ADC AX,,,DI,;,16,位相加,INC SI,INC SI,INC DI,INC DI,MOV,BX,,,AX,;,相加结果送结果单元,INC BX,INC BX,LOOP MADDB1,;,执行循环,MOV AH,,,4CH,INT 21H,CODE ENDS,END MADDB,
展开阅读全文