ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:22.84KB ,
资源ID:9292706      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9292706.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言课后习题答案郑晓薇后的.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编语言课后习题答案郑晓薇后的.docx

1、汇编语言课后习题答案郑晓薇后的习题一1 2 5E8AH,0BE6H,3DEH,4940H3 00011101+00110101=01010010=52H=8245 000020A3H,FF94H,00003456H,007FH,FFFFEC00H6 无符号数:065535,0000HFFFFH;带符号数:-32768+32767,8000H7FFFH7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASC

2、II码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码8 (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H9 (1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0(4) -9237=01111111B,CF=1,SF=0,ZF=0,OF=110 回车、换行、响铃、ESC键、空格键、P、p习题二9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)10 CS:IP,DS:BX、S

3、I、DI,ES:BX、SI、DI,SS:SP、BP11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。 12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。13 首单元的物理地址=38AE8H,末单元的物理地址=38AE8H+7FFFH=40AE7H16 (1)物理地址=27679H (2) 物理地址=20F92H (3) 物理地址=20F92H (2)和(3)的物理地址是一样的。说明逻辑地址不唯一,多个逻辑地址可对应到同一个物理单元上。17 代码段CS:IP的物理地址=55A84H 堆栈段SS:S

4、P的物理地址=4DB65H数据段DS:BX的物理地址=17678H 附加段ES:DI的物理地址=2BA41H18 当前栈指针所指单元的物理地址是1522CH。堆栈区中还能保存254个字。19 执行E 20020 执行U 100 21 执行R CX,然后输入10022 执行E DS:0 a b c d 习题三3 MOV AX,BX 源操作数为寄存器寻址,EA 无,物理地址 无MOV AX,1290H 立即寻址,EA 无,物理地址 无MOV AX,BX 寄存器间接寻址,EA=1290H, 物理地址=2FBB0HMOV AX,DS:1290H 直接寻址,EA=1290H, 物理地址=2FBB0HMO

5、V AX,BP 寄存器间接寻址,EA=6756H, 物理地址=26A56HMOV DIBX,AX 目的操作数为基址变址寻址,EA=3C06H, 物理地址=32526HMOV ES:SI,AX 寄存器间接寻址,EA=348AH, 物理地址=50CAAH7 MOV AX,CX 错。CX不能为间址寄存器MOV AL,1200H 错。立即数超出8位寄存器范围MOV AL,BX 错。两个操作数不匹配MOV SIDI,AX 错。两个变址寄存器不能在一起MOV ES:DX,CX 错。DX不能为间址寄存器MOV AX,VALUE 错。AX不能为间址寄存器MOV COUNT,SI 错。两个操作数不能都是存储单元

6、8 (1) MOV AX,BX (2) MOV CL,15 (3) ADD AX,BX (4) MOV BX+SI,AL (5) MOV AX,VALUESI (6) SUB AX,DS:2000H9 (1) ADD AX,X+4MOV Y,AX (2) MOV BX,4ADD AX,XBX MOV Y,AX(3) MOV BX,4MOV SI,OFFSET XADD AX,BX+SIMOV Y,AX10 立即寻址方式中操作数(立即数)和指令一起存放在代码段中。习题四10 (1) DATA SEGMENTX DW 0Y DW 0DATA ENDS(2) STRING DB Computer(3

7、) COUNT DB 100 DUP()(4) PI EQU (5) VALUE LABEL BYTE11 (1)对。(2)错。260超出了字节范围。(3)错。X3是字节型,1234H是字型,不匹配。(4)对。(5)错。缺少DUP。(6)对。12 (1)AL=3。(2)AX=2103H。(3)DX=TABLE的偏移地址。(4)CL=33H(5)BX=TABLE的段地址。(6)BX=1。(7)DX= TABLE的偏移地址。13 MOV DX,2012HMOV AX,5D68HMOV CX,1003HMOV BX,49A6HADD AX,BX (SUB AX,BX)ADC DX,CX (SBB D

8、X,CX)14 SUB AX,CXSBB DX,015 MOV AX,extraMOV ES,AX16 (1) MOV AL,16ADD AL,XMOV BL,5IMUL BLMOV Z,AX(2) MOV BL,4MOV AL,XIDIV BLSUB AL,YMOV Z,AX(3) MOV AL,XMOV BL,8IMUL BLMOV DX,AXMOV AH,0MOV AL,YMOV BL,16IDIV BLCBWADD DX,AXMOV AH,0MOV AL,WIMUL ALSUB DX,AXMOV Z,DX(4) MOV AL,XADD AL,YMOV BL,XSUB BL,YMOV A

9、H,0IMUL BLMOV Z,AXMOV AL,XIDIV YCBWSUB Z,AX17 Z= (5+22-15)*14= 16818 从伪指令END START处获知程序从START标号开始。19 (1)减法: (2) 加法:MOV AX,8576H MOV AX,8576HMOV BX,9988H MOV BX,9988HSUB AX,BX ADD AX,BX结果:AX=EBEEH 结果:AX=1EFEHCF=1,OF=0,ZF=0,SF=1 CF=1,OF=1,ZF=0,SF=021 (1) MOV AL,56HMOV BL,34HADD AL,BLDAAMOV Y1,AL(2) MO

10、V AX,128HMOV BX,35HSUB AX,BXDASMOV Y2,AL(3) MOV AL,68HMOV BL,23HADD AL,BLMOV BL,45HSUB AL,BLDASMOV Y3,AL22 (1) MOV AX,0708HMOV BX,0406HADD AL,BLADD AH,BH ;不用带进位加AAA ;加法调整,含进位调整MOV BX,AXXCHG AH,AL ;高4位调整AAAMOV BH,ALMOV Z1,BX ;保存十位、各位,百位在CF中(2) MOV AX,0905HMOV BX,0207HSUB AL,BLSUB AH,BH ;不用带借位减AAS ;减法

11、调整MOV Z2,AX(3) MOV AX,0102HMOV BX,0006HMUL BX ;乘法先不用调整MOV BX,0303HSUB AX,BXAAS ;减法调整MOV Z3,AX(4) MOV AX,0704HMOV BX,0108HADD AL,BLADD AH,BHAAA ;加法调整MOV BL,6AAD ;除法调整DIV BLMOV BH,AH ;余数保存在BHAND AX,000FHAAA ;商调整MOV Z4,AX ;保存商23 .model small.databuff db ?.codestart:mov ax,datamov ds,axmov ah,1 ;键盘输入int

12、 21hsub al,30h ;去掉ASCII码mov buff,almov ah,4chint 21hend start24 .model small.codestart:mov ah,1 ;键盘输入int 21hsub al,20h ;变为大写mov dl,almov ah,2int 21hmov ah,4chint 21hend start25 .model small.datax db 12hy db 34h.codestart:mov ax,datamov ds,axmov al,xadd al,y ;结果为46Hmov ah,al ;AH=46Hand al,0fh ;AL=06H

13、mov cl,4rol ah,cl ;AH=64Hand ah,0fh ;AH=04Hadd ax,3030h ;AX=3436Hmov bx,axmov dl,bh ;显示4mov ah,2 int 21hmov dl,bl ;显示6int 21hmov ah,4chint 21hend start26 data segment x db ,db , ;建立字符表y db 5 dup() ;存放查到平方根u db 3 ;要查的数data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov al,u ;要查的数

14、mov cl,5mul cl ;u*5=15(号单元开始)mov ah,0mov bx,ax ;地址保存到bxmov si,0let1:mov al,xbx ;取出平方根数字mov ysi,al ;存入yinc siinc bxloop let1 ;循环取出5次mov ah,4chint 21hcode endsend start27 .model small.datax1 db zhang yan $ ;姓名为10个字符宽度x2 db li li $x3 db wang lan $x4 db zhao xue $x5 db li jiang $u db 3 ;要查的学号.code start

15、:mov ax,datamov ds,axmov al,u ;给出学号mov cl,10mul cl ;u*10=30(号单元开始)mov ah,0mov dx,ax ;地址保存到dxmov ah,9 ;9号功能显示字符串int 21hmov ah,4chint 21hend start28编程实现公式计算Z=X/4+16Y。.model small.datax db 4 y db 6z db ?.code start:mov ax,datamov ds,axmov al,x ;mov cl,2sar al,cl ; X/4mov cl,4mov bl,ysal bl,cl ;16Yadd a

16、l,bl ;X/4+16Ymov z,almov ah,4chint 21hend start29 .model small.datay db ,?.code start:mov ax,datamov ds,axmov al,3 ;设al=3mov cl,6mul cl ;al*6mov cl,4 ;设cl=4sub al,cl ;相减mov bl,3 idiv bl ; /3mov y,al ;商mov y+1,ah ;余数mov ah,4chint 21hend start习题五11 进位标志CF=1 12 先把AX的值除以8等于0246H,再把高12位屏蔽为0,剩下AL=06H加上30H

17、变为ASCII码显示出来。13 判断X0,是,Z=X-Y;否则Z=X的绝对值 14(1) 目的操作数是存储单元时,要用PTR伪操作指出单元的属性 (2)DS段寄存器使用非法 (3)立即数使用非法 (4) 目的操作数不允许是立即数 (5) 两个操作数不允许都是存储单元 (6)移位次数超过1要用CL表示。15 16 (1) AL=30H (2) AL=B7H (3) AL=C8H (4)AL=38H27 分支程序设计。完成如下公式的计算,请写出程序。 (X+3)/2 X0Y= 0 X=0 X4 X0程序如下:DATA SEGMENTX DB 23Y DB ?DATA ENDSCODE SEGMEN

18、TASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,XCMP AL,0JE SUB2JG SUB1MOV CL,2SAL AL,CLJMP SHORT SUB2SUB1:ADD AL,3SAR AL,1SUB2: MOV Y,ALMOV AH,4CHINT 21HCODE ENDSEND START28 设X、Y、Z为字节单元。如果X0,Z=4X-Y/16,否则,Z=X的绝对值。编程序实现。程序如下:DATA SEGMENTX DB 3Y DB 5Z DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS

19、:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,XCMP AL,0JL SS1MOV CL,2SAL AL,CLMOV BL,YMOV CL,4SAR BL,CLSUB AL,BLJMP OUT1SS1: NEG ALOUT1: MOV Z,ALMOV AH,4CHINT 21HCODE ENDSEND START29 字数组M中有10个数据,分类统计其中正数、负数、0的个数,分别存入POSI、NEGA、ZERO 单元。程序如下:DATA1 SEGMENTM DW 21,-34,32,112,-324,0,76,0,48,50POSI DW ?NEGA DW ?Z

20、ERO DW ?DATA1 ENDSCODE1 SEGMENTASSUME CS: CODE1,DS:DATA1START: MOV AX,DATA1MOV DS,AXMOV CX,10LEA SI,MAGAIN: CMP WORD PTR SI,0JL LOWERJE EQUALINC POSIJMP LPP1LOWER: INC NEGAJMP LPP1 EQUAL: INC ZEROLPP1: ADD SI,2DEC CXJNZ AGAINMOV AH,4CHINT 21HCODE1 ENDSEND START30 试编写程序,从键盘接收一英文单词,以空格结束,将其存入BUF开始的存储单

21、元中,并在最后加上字符串结束符$。主要程序部分:LEA BX,BUFLOP: MOV AH,1INT 21HCMP AL,20HJE NEXTMOV BX,ALINC BXJMP LOPNEXT: MOV BYTE PTRBX,$31 编程。将AX寄存器中的16位数分成4组,每组4位,从低到高分别放在AL,BL,CL,DL中。程序段:START:MOV AX,1234HMOV BX,AXAND AL,0FH ;4AND BL,0F0H ;3AND AH,0FHMOV CL,AH ;2AND BH,0F0HMOV DL,BH ;1习题六11 累加和TOTAL=8312 循环统计X中0的个数13

22、(1) 将BB1:RCL AL,1改为BB1:ROL AL,1(2) 将BB2:CMP BX,TLOOPNE BB2改为:DEC BXBB2:INC BXCMP BX,TLOOPNE BB215 计算Y=12+34+56+78+910的程序段答案:MOV AL,1MOV BL,2MOV DX,0MOV CX,5AA1:MUL BLADD DX,AXINC BLMOV AL,BLINC BLLOOP AA116写程序段。查找CATT表中的字符”,找到后将SIGN单元置1,否则SIGN单元置0。catt db asddddsign db ?mov ax,extramov es,axmov sign

23、,0mov al,lea di,cattcldmov cx,7repnz scasbjcxz neemov sign,1nee: mov ah,4chint 21h17写程序段。在长度为N的字数组VALUE中统计负数的个数并保存到AX中。value dw 2,-4,-5,3,6,6,-8n equ ($-value)/2 ;元素个数start: mov ax,datamov ds,axmov cx,nmov bx,0mov ax,0rept1:mov si,valuebx ;取出元素cmp si,0 jge let1 ;0 转let1inc ax ;为负数,ax加1let1: add bx,2

24、loop rept118从键盘输入一个数字,在屏幕上显示出以该数字开始10个数字串。CODE SEGMENTASSUME CS:CODESTART: MOV AH,1INT 21HMOV CX,10MOV BL,ALREPT1: CMP BL,9JLE NEXTSUB BL,10NEXT: MOV DL,BLMOV AH,2INT 21HINC BLLOOP REPT1MOV AH,4CHINT 21HCODE ENDSEND START19 data segmentbunch1 db stadentbunch2 db studEntdata endscode segmentassume cs

25、:code,ds:data,es:datastart:mov ax,datamov ds,axmov es,axlea si,bunch1lea di,bunch2mov bx,0 ;bh=相同的个数,bl=不同的个数mov cx,7let1:mov al,sicmp al,di ;两字符比较jz equl ;相同转equlinc bl ;不同bl加1jmp out1equl: inc bhout1:inc siinc diloop let1mov dl,n ;显示n,代表不同mov ah,2hint 21hadd bl,30h ;加上ASCII码mov dl,bl ;显示不同的个数int 2

26、1hmov dl,e ;显示e,代表相同int 21hadd bh,30hmov dl,bh ;显示相同的个数int 21h mov ah,4chint 21hcode endsend start21 DATA SEGMENTSTR DB SDABF G H0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DI,STRSPACE:MOV CX,10MOV AL,DICMP AL,0JE OUTCMP AL,20HJE DELETEJMP EXITSUB CX,DIMOV SI,DIDELETE:M

27、OV BL,SI+1MOV SI,BLINC SILOOP DELETEEXIT:JMP SPACEOUT:MOV AH,4CHINT 21HCODE ENDSEND START23设计思路:(1) 用EQU伪指令获得需转换的十进制数的个数;(2) 用双重循环。外循环控制个数,用x作为中间变量;(3) 内循环将一个3位十进制数去掉ASCII码后按位数扩大10倍再相加,保存后即存储为二进制数;(4) 分两个数组保存ASCII码表示的十进制数和转换后的二进制数。程序如下: ; 将内存中用ASCII码表示的100以内的十进制数转变为二进制数data segmentscore1 db 36h,37h,

28、20h,31h,30h,30h,38h,35h,20h,31h,30h,30h ;即67,100,85,100x dw ?n equ 3 ;三位数num equ (x-score1)/n ;十进制数个数score2 dw num dup(0) ;保存转换后的二进制数data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov cx,num mov si,-2mov bx,0rept1: push cx ;保存外循环次数mov cx,nrept2: mov al,score1bx ;从score1取数cmp al,30h ;判断是否0-9jl exitcmp al,39hjg exitand ax,000fh ;去掉ASCII码xchg ax,x mov dx,10 ;将ax中前一次形成的数扩大10倍mul dx xchg ax,xadd x,ax ;相加后保存到xexit: inc bx ;取下一位数l

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1