




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、33 设设DS=1000H,ES=2000H,SS=3500,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,数据段中变量名为,数据段中变量名为VAL的偏移地址值为的偏移地址值为0030H,试说明下列源操作数字段的寻址方式是什么?物理地址值是什么?试说明下列源操作数字段的寻址方式是什么?物理地址值是什么?(1)MOV AX,100H直接10100H指 令源寻址物理地址(2)MOV AX,VAL直接10030H(3)MOV AX,BX寄存器间址10100H(4)MOV AX,ES:BX寄存器间址20100H(5)MOV AX,SI寄存器间址100A0H(6)MOV AX,
2、BX+10H寄存器相对寻址10110H(7)MOV AX,BP寄存器间址35200H(8)MOV AX,VALBPSI相对基址变址352D0H(9)MOV AX, VALBXDI相对基址变址10154H(10)MOV AX,BPDI基址加变址35224H36 指出下列指令中那些是错误的,错在什么地方。指 令判 定(1) MOV DL,AX错!AX为16位,DL为8位(2) MOV 8650H,AX错!目的寻址无立即寻址(3) MOV DS,0200H错!段寄存器无立即寻址(4) MOV BX,1200H错!内存之间不能直接传送(5) MOV IP,0FFH错!不能对IP赋值(6) MOV BX
3、+SI+3,IP错!IP不能作源操作数(7) MOV AX, BX BP错!BX、BP不能对同一段寻址36 指出下列指令中那些是错误的,错在什么地方。(8) MOV AL,ES:BP对!(9) MOV DL,SIDI错!两个变址寄存器不能同时出现10)MOV AX,OFFSET 0A20H错!OFFSET后不能跟立即数11)MOV AL,OFFSET TABLE错!数据位数不匹配(12) XCHG AL,50H错!XCHG指令不能用立即数做操作数(13) IN BL,05H错!IN指令中只能用AL/AX(14) OUT AL,OFFEH错!格式有两个错误,应为:MOV DX,OFFEHOUT
4、DX,AL39 下列指令完成什么功能?下列指令完成什么功能?1 ADD AL,DH2 ADC BX,CX3 SUB AX,2710H4 DEC BX5 NEG CX6 INC BL7 MUL BX8 DIV CLAL AL + DHBX BX + CX + CFAX AX - 2710HBX BX - 1CX 0 CXBL BL + 1DX,AX AX*BXAL AX/CL的商的商, AH AX/CL的余数的余数30 已知变量已知变量X1和和X2的定义如下的定义如下 X1 DW 1024H DW 2476H X2 DW 3280H DW 9351H请按下列要求进行运算或操作后,将运算结果存到请
5、按下列要求进行运算或操作后,将运算结果存到RESULT单元中,低位在单元中,低位在前,高位在后。试分别写出指令序列。前,高位在后。试分别写出指令序列。1 .将将X1和和X2两个字数据相加两个字数据相加; 2. 将将X1和和X2两个双字数据相加两个双字数据相加3. 将将X1和和X2两个字数据相减两个字数据相减; 4 .将将X1和和X2两个字数据交换位置两个字数据交换位置30 X1 DW 1024H DW 2476H X2 DW 3280H DW 9351H1. 将将X1和和X2两个字数据相加两个字数据相加RESULT DW 2 DUP(0)MOV SI, OFFSET X1MOV BX,OFFS
6、ET X2MOV DI,OFFSET RESULTMOV CX, 2CLC ; 清进位标志AGAIN: MOV AX, SI ADD AX, BX MOV DI, AX INC SI INC SI INC BX INC BX INC DI INC DI DEC CX JNZ AGAIN HLT30 X1 DW 1024H DW 2476H X2 DW 3280H DW 9351H2. 将将X1和和X2两个双字数据相加两个双字数据相加RESULT DW 2 DUP(0)MOV SI, OFFSET X1MOV BX,OFFSET X2MOV DI,OFFSET RESULTMOV CX, 2CL
7、C ; 清进位标志AGAIN: MOV AX, SI ADC AX, BX MOV DI, AX INC SI INC SI INC BX INC BX INC DI INC DI DEC CX JNZ AGAIN HLT30 X1 DW 1024H DW 2476H X2 DW 3280H DW 9351H3. 将将X1和和X2两个字数据相减两个字数据相减RESULT DW 2 DUP(0)MOV SI, OFFSET X1MOV BX,OFFSET X2MOV DI,OFFSET RESULTMOV CX, 2CLC ; 清进位标志AGAIN: MOV AX, SI SUB AX, BX
8、MOV DI, AX INC SI INC SI INC BX INC BX INC DI INC DI DEC CX JNZ AGAIN HLT30 X1 DW 1024H DW 2476H X2 DW 3280H DW 9351H4将将X1和和X2两个字数据交换位置两个字数据交换位置RESULT DW 2 DUP(0)MOV SI, OFFSET X1MOV BX,OFFSET X2MOV DI,OFFSET RESULTMOV CX, 2CLC ; 清进位标志AGAIN: MOV AX, SI XCHG AX, BX INC SI INC SI INC BX INC BX DEC CX
9、JNZ AGAIN HLT310 某班有某班有7个同学的英语成绩低于个同学的英语成绩低于80分,分数存在分,分数存在ARRAY数组中,数组中,试编程完成以下工作:试编程完成以下工作:1 给每人加给每人加5分,结果存到分,结果存到NEW数组中数组中2 把总分存到把总分存到SUM单元中单元中3 把平均分存到把平均分存到AVERAGE单元中。单元中。ARRAY DB 7 DUP(?)NEW DB 7 DUP(?)SUM DW 0AVG DB 0 MOV CX, 7 MOV SI, 0 MOV SUM, 0LP: MOV AL, ARRAYSI ADD AL, 05H MOV NEWSI, AL MO
10、V AH, 0 ADD SUM, AX INC SI DEC CX JNZ LP MOV AX, SUM MOV BL,07H DIV BL MOV AVG, AL HLT312 假设数据段定义如下:DATA SEGMENTSTRING DB The Personal Computer & TVDATA ENDS试用字串操作等指令编程完成以下功能: (1)把该字符串传送到附加段中偏移量为GET_CHAR开始的内存单元中。 (2)比较该字符串是否与“ The computer”相同,若相同则将AL寄存器的内容置1,否则置0,并要求将比较次数送到BL寄存器中。 (3)检查该字符串是否有“
11、&”,若有则用空格符号将其替换。 (4)把字符串大写字母传送到附加段中以CAPS开始的单元中,其余字符传到以CHART开始的单元。然后将数据段中存储上述字符串的单元清0。数据段定义如下:DATA SEGMENTSTRING DB The Personal Computer & TVCOUNT DW STRINGDATA ENDSEXTRA SEGMENTGET_CHAR DB 26 DUP(?)STRING1 DB The ComputerCAPS DB 26 DUP(?)CHART DB 26 DUP(?)EXTRA ENDS附加段定义如下:(1)把该字符串传送到附加段中偏移
12、量为GET_CHAR开始的内存单元中。MOVSI,OFFSET STRINGMOVDI,OFFSET GET_CHARMOVCX,COUNTREP MOVSBHLT(2)比较该字符串是否与“ The computer”相同,若相同则将AL寄存器的内容置1,否则置0,并要求将比较次数送到BL寄存器中。 MOV SI,OFFSET STRING MOVDI,OFFSET STRING1 MOVCX,COUNT MOV BX,CX CLD REPZCMPSB JZGO MOV AL,0JMPDONEGO:MOVAL,1DONE:SUBBL,CLHLT(3)检查该字符串是否有“ &”,若有则用
13、空格符号将其替换。 MOVDI,STRING MOVCX,COUNT MOVAL,&AGAIN: REPNZSCASB JZ FOUND JMP DONEFOUND: DEC DI MOVDI,20H INC DI JMP AGAINDONE: HLT(4)把字符串大写字母传送到附加段中以CAPS开始的单元中,其余字符传到以CHART开始的单元。然后将数据段中存储上述字符串的单元清0。 MOV SI, OFFSET STRING MOV DX,SI MOV DI, OFFSET CHART MOV BX,OFFSET CAPS MOV CX,COUNTAGAIN: LODSB STRI
14、NG CMP AL,41H JB TO_C ;Z转 MOV BX,AL INC BX LOOP AGAIN JMP DONETO_C:STOSBLOOPAGAINDONE:MOV DI,DX MOV CX,COUNT MOV AL,0 REP STOSB HLT44 假设程序中的数据定义如下:假设程序中的数据定义如下:PAR DW ?PNAME DB 16 DUP(?)COUNT DD ?PLENTH EQU $-PAR求求PLENTH的值为多少?表示什么意义?的值为多少?表示什么意义?答:答:22, 表示当前正在汇编的地址与表示当前正在汇编的地址与PAR的偏移量。的偏移量。46 下段程序完成
15、后,下段程序完成后,AH等于什么?等于什么? IN AL, 5FH TEST AL, 80H JZ L1 MOV AH, 0 JMP STOPL1: MOV AH, 0FFHSTOP: HALT答:答: ;5F端口的内容送端口的内容送AL ;逻辑与操作,逻辑与操作,1000 0000 5F端口的内容第端口的内容第8位为位为0则则AH=FFH 5F端口的内容第端口的内容第8位为位为1则则AH=0 16位二进制数位二进制数AX 到到 BCD码码 AX B2TOBCD PROC FAR CMP AX,999 JBE TRAN STC JMP EXITTRAN: PUSH CX PUSH DX SUB
16、 DX, DX MOV CX, 1000 DIV CX XCHG AX, DX MOV CL, 4 SHL DX, CL MOV CL, 100 DIV CL ADD DL, AL MOV CL, 4 SHL DX,CL XCHG AL,AH SUB AH,AH MOV CL,10 DIV CL ADD DL,AL MOV CL,4 SHL DX,CL ADD DL,AH MOV AX,DX POP DX POP CXEXIT:RETB2TOBCD ENDP48 编两个通用过程完成将编两个通用过程完成将AX中存放的中存放的二进制数转换成压缩型二进制数转换成压缩型BCD码以及将码以及将BCD码转
17、换成二进制数。码转换成二进制数。4位位BCD AX 到到16二进制数二进制数AXBCD2BIN PROC NEAR(或或FAR) MOV BX, 0H ;结果为结果为0 MOV SI, 0AH ; 乘数为乘数为10 MOV CH, 4 ; 位数位数CH MOV CL, 4 ;循环移位计数循环移位计数4NDIGIT: ROL AX, CL ; 循环左移循环左移4位位 ;MOV DI, AX ; 保存左移结果到保存左移结果到DI中中 AND AX, 0FH ;取左移过的最高位到取左移过的最高位到AX ADD AX, BX; 加到最后结果中加到最后结果中 DEC CH JZ DONE MUL SI
18、;AX*SI积送积送(DX,AX) MOV BX, AX ;保存中间结果到保存中间结果到BX中中 JMP NDIGITDONE: RETBCD2BIN ENDP411 某程序可从键盘接收命令某程序可从键盘接收命令(05),分别转向,分别转向6个子程序,子程序入口地址分别为个子程序,子程序入口地址分别为P0 P5,编制,编制程序,用跳转表实现分支结构。程序,用跳转表实现分支结构。BASE DW P0,P1,P2,P3,P4,P5KEY DB ? MOV AH, 1 INT 21H AND AL, 0FH ; 清高四位 MOV BX, OFFSET BASE MOV AH, 0 ADD AL, A
19、L ; 求偏移量AL ADD BX, AX ;求表地址 JMP WORD PTRBX ;转到相应入口地址 413 将键盘上输入的十六进制数转换成十进制数,将键盘上输入的十六进制数转换成十进制数,在屏幕上显示。在屏幕上显示。stack segment para stack stackdb 100 dup(0)stack endsDA_SEG SEGMENThexCHAR DB 4 DUP(0);4位16进制数输入decCHAR DB 5 dup(0);5位10进制数输出 inpChar DB Input 4 Digit HexChar, Pls:$ oupHex DB 0DH,0AH, HexC
20、har:$ oupDec DB 0DH,0AH, DecChar:$DA_SEG ENDSCODE_SEG SEGMENTASSUME CS:CODE_SEG,DS:DA_SEG,ES:DA_SEG,ss:stack;从键盘输入4位16进制数LL1:MOV AX,DA_SEGMOV DS,AXMOV ES,AXMOV CX,4MOV SI,OFFSET hexCHAR;提示输入 MOV DX, OFFSET inpCHAR MOV AH, 9 INT 21HLL2: MOV AH,1;输入一个字符,在AL中INT 21H;检查是否在范围内:09,AFcmp al,0;0jb LL2cmp al
21、,9+1;9jb savecmp al,A;Ajb LL2cmp al,F+1;Fjnb LL2sub al,11hadd al,10save:sub al,30hMOV SI,AL;保存INC SIDEC CXJNZ LL2;不够4个循环;输出十六进制数 MOV DX, OFFSET oupHex MOV AH, 9 INT 21HMOV CX,4MOV SI,OFFSET hexCHARMOV AH,2LL3: MOV DL,SI;取字符cmp dl,10jb LL4sub dl,10add dl,11hLL4:add dl,30hINT 21HINC SIDEC CXJNZ LL3MOV
22、 SI,OFFSET hexCHARmov DI,OFFSET decCHARadd si,3mov ah,0mov al,si;最低位16进制数-axdec simov cl,4mov bh,0mov bl,si;SHL bx,cladd ax,bxdec simov cl,8mov bh,0mov bl,si;SHL bx,cladd ax,bxdec simov cl,12mov bh,0mov bl,si;SHL bx,cladd ax,bx ;至此,4位16进制数都在ax中;以下为4位16进制数转换为10进制数并输出mov dx,0mov bx,10000div bxmov di,alinc dimov ax,dxmov dx,0mov bx,1000div bxmov di,alinc dimov ax,dxmov dx,0mov bx,1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中央空调系统中级操作员考试指南与技巧
- 2025年乡镇农技站招聘模拟题及答案解析农产品检测篇
- 2025年体育行业高级职位面试技巧与模拟题
- 2025年中国铁建招聘考试中的面试技巧与经验专题
- 2025年互联网产品经理岗位招聘面试模拟题详解
- 2025年人力资源管理师初级考试重点梳理
- 水泥养护工程施工方案
- 少儿游戏活动方案范本
- 绳锯墙体开洞施工方案
- 旧厂房出售拆除合同范本
- 2025年交通安全问答试题及答案
- 电子厂安全考试题库及答案大全
- 种植牙术后注意事项
- 2025下半年网络管理员考题试卷及答案
- 2024年陕西数字教育年度发展报告-陕西省教育厅
- 探针卡基础知识培训课件
- 2025年留置看护队考试题库及答案
- 幽门螺旋杆菌教学课件
- 高三秋季开学第一课:语你相遇文暖我心+课件+2025-2026学年统编版高一语文必修上册
- 心内科常见疾病健康宣教
- 闭经中医课件
评论
0/150
提交评论