内容发布更新时间 : 2025/1/1 22:12:04星期一 下面是文章的全部内容请认真阅读。
广东技术师范学院实验报告
实验 五 项目名称: 数码转换编程及程序调试实验
注释
;(SI)=3500H,源串首地址 ;(DI)=3510H,目标串首地址 ;(BX)=000AH
;(CX)=0004,串长度 ;(AH)=00H ;(AL)←[SI] ;(AL)←(AL)-30H
;带符号数乘法,(AX)←(AX)*(BX) ;(AL)←(AL)+[SI+01] ;(AL)←(AL)-30H ;(SI)←(SI)+1
;(CX)≠0,则跳转到2012指令,(CX)←(CX)-1,直至(CX)=0 ;[DI]←(AX) ;处理器暂停
存储器
0000:3500 0000:3501 0000:3502 0000:3503 0000:3504 0000:3510 0000:3511
30 32 30 31 37 E1 07
表4
0000:3500 0000:3501 0000:3502 0000:3503 0000:3504 0000:3510 0000:3511 存储器 35 33 33 38 39 8D D0 (一)将ASCⅡ表示的十进制数码转换为二进制
机器码 汇编程序 CS:IP
MOV SI,3500 1 0000:2000 BE0035 2 3 4 5 6 7 8 9 10 11 12 13 14 表2
0000:3500 0000:3501 0000:3502 0000:3503 0000:3504
0000:3510 0000:3511
存储器 30 30 30 31 32 0C 00
表3
0000:2003 BF1035 0000:2006 BB0A00 0000:2009 B90400 0000:200C B400 0000:201E 8A04 0000:2010 2C30 0000:2012 F7EB 0000:2014 024401 0000:2017 2C30 0000:2019 46 0000:201A E2F6 0000:201C 8905 0000:201E F4
MOV DI,3510 MOV BX,000A MOV CX,0004 MOV AH,00 MOV AL,[SI] SUB AL,30 IMUL BX
ADD AL,[SI+01] SUB AL,30 INC SI LOOP 2012 MOV [DI],AX HLT
(二)十进制数的ASCⅡ码转换为BCD码
机器码 汇编程序 CS:IP
MOV CX,0005 1 0000:2000 B90500 2 3
0000:2003 BF0035 0000:2006 B3FF
MOV DI,3500 MOV BL,FF
注释
;(CX)=5,串长度
;(DI)=3500H,目标串首地址 ;(BL)=FFH
4 5 6 7 8 9 10 11 12 13 14 表5
0000:2008 8A05 0000:200A 3C3A 0000:200C 7306 0000:200E 2C30 0000:2010 7202 0000:2012 88C3 0000:2014 88D8 0000:2016 88450A 0000:2019 47 0000:201A E2EA 0000:201C F4
存储器 0000:3500 0000:3501 0000:3502 0000:3503 0000:3504
31 32 33 34 35 01 02 03 04 05
MOV AL,[DI] CMP AL,3A JNB 2014 SUB AL,30 JB 2014
MOV BL,AL MOV AL, BL INC DI LOOP 2006 HLT 表6
0000:3500 0000:3501 0000:3502 0000:3503 0000:3504 0000:350A 0000:350B 0000:350C 0000:350D 0000:350E 存储器
42 38 43 34 37 FF 08 FF 04 07 ;(AL)←[DI]
;比较两个数的大小,影响标志位 ;若CF不小于0时跳转到2014指令 ;(AL)←(AL)-30H
;若(AL)小于0时跳转到2014指令
;(BL)←(AL) ;(AL)←(BL) ;(DI)←(DI)+1
;(CX)≠0,则跳转到2006指令,(CX)←(CX)-1,直至(CX)=0 ;处理器暂停
表7
0000:3500 0000:3501 0000:3502 0000:3503 0000:3504 0000:350A 0000:350B 0000:350C 0000:350D 0000:350E 存储器 41 43 45 42 44 FF FF FF FF FF MOV [DI+0A],AL ;[DI+0A]←AL
0000:350A 0000:350B 0000:350C 0000:350D 0000:350E
(三)将十六位二进制数转换为ASCⅡ表示的十进制数
机器码 汇编程序 注释 CS:IP
MOV DX,[3500] ;(DX)←[3501][3500] 1 0000:2000 8B160035 2 3 4 5
0000:2004 BE1535 0000:2007 4E 0000:2008 89D0 0000:200A BA0000
MOV SI,3515 DEC SI
MOV AX,DX MOV DX,0000
;(SI)=3515H,源串首地址 ;(SI)←(SI)-1 ;(AX)←(DX) ;(DX)=0000H
6 7 8 9 10 11 12 13 14 15 16 17 18 19
0000:200D B90A00 0000:2010 F7F1 0000:2012 87C2 0000:2014 0430 0000:2016 8804 0000:2018 83FA00 0000:201B 75EA 0000:201D 81FE1035 0000:2021 7406 0000:2023 4E 0000:2024 B030 0000:2026 8804 0000:2028 EBF2 0000:202A F4
MOV CX,000A DIV CX
XCHG AX,DX ADD AL,30 MOV [SI],AL CMP DX,0000 JNZ 2007
CMP SI,3510 JZ 202A DEC SI
MOV AL,30 MOV [SI],AL JMP 201D HLT
;(CX)=000AH ;无符号数除法 ;数据交换 ;(AL)←(AL)+30H ;[SI]←(AL)
;比较两个数的大小,影响标志位 ;ZF=0,转至标号2007处执行 ;比较两个数的大小,影响标志位 ;ZF=1,转至标号202A处执行 ;(SI)←(SI)-1 ;(AL)←30H ;[SI]←(AL)
;无条件跳转到201D处 ;处理器暂停
表8
0000:3500 0000:3501
0000:3510 0000:3511 0000:3512 0000:3513 0000:3514
存储器 0C 00 30 30 30 31 32
表9
0000:3500 0000:3501 0000:3510 0000:3511 0000:3512 0000:3513 0000:3514 存储器 FF 00 30 30 32 35 35
表10
0000:3500 0000:3501
0000:3510 0000:3511 0000:3512 0000:3513 0000:3514
存储器 69 00 30 30 31 30 35