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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

汇编语言王爽课后答案.docx

1、汇编语言王爽课后答案汇编语言王爽课后答案【篇一:汇编语言课后习题答案 王爽主编】一个值为 0 的字节,找到后,将它的偏移地址存储在 dx 中。 assume cs:code code segment start: mov ax,2000h mov ds,axmov bx,0s: mov ch,0 mov cl,bx jcxz ok; 当 cx=0 时, cs:ip 指向 okinc bx jmp short s ok: mov dx,bx mov ax ,4c00h int 21h code ends end start 检测点 9.3补全编程,利用 loop 指令,实现在内存 2000h 段

2、中查找第一个值 为 0 的字节,找到后,将它的偏移地址存储在 dx 中。assume cs:code code segment start: mov ax,2000h mov ds,ax mov bx,0 s:mov cl,bx mov ch,0 inc cx inc bx loop s ok:dec bx mov dx,bx mov ax,4c00h int 21h code ends end start 书 p101 ,执行 loop s 时,首先要将 (cx) 减 1 。 “loop 标号”相当于 dec cxif(cx) 工 0) jmp short标号检测点 10.1 补全程序,实现

3、从内存 1000 :0000 处开始执行指令。 assume cs:code stack segment db 16 dup (0) stack ends code segment start: mov ax,stack mov ss,ax mov sp,16 mov ax, 1000h mov ax,0 push ax retf code ends end start 执行 reft 指令时,相当于进行: pop ip pop cs 根据栈先进后出原则,应先将段地址 cs 入栈,再将偏移地址 ip 入 栈。检测点 10.3 下面的程序执行后, ax 中的数值为多少? 内存地址机器码 汇编指令

4、执行后情况 1000:0 b8 00 00 mov ax,0 ax=0,ip 指向 1000:3 1000:3 9a 09 00 00 10 call far ptr s pop cs,pop ip,ip 指向 1000:91000:8 40 inc ax1000:9 58 s:pop ax ax=8h add ax,ax ax=10h pop bx bx=1000h add ax,bx ax=1010h 用 debug 进行跟踪确认, “ call far ptr s 是先”将该指令后的第一个 字节段地址 cs=1000h 入栈,再将偏移地址 ip=8h 入栈,最后转到 标号处执行指令。出栈

5、时,根据栈先进后出的原则,先出的为 ip = 8h,后出的为cs =1000h检测点 10.4下面的程序执行后, ax 中的数值为多少? 内存地址机器码 汇编指令 执行后情况 1000:0 b8 06 00mov ax,6 ax=6,ip 指向 1000:31000:3 ff d0call ax pop ip,ip 指向 1000:61000:5 40inc ax1000:6 58mov bp,spbp=sp=fffeh add ax,bp ax=6+ds:(fffeh)=6+5=0bh 用 debug 进行跟踪确认, “ call ax(16 位 reg) ”是先将该指令后的第 一个字节偏移

6、地址 ip 入栈,再转到偏移地址为 ax(16 位 reg) 处执行 指令。检测点 10.5 (1)下面的程序执行后, assume cs:code stack segment dw 8 dup (0) stack ends code segment start: mov ax,stack mov ss,ax mov sp,16 mov ds,ax mov ax,0 call word ptr ds:0eh inc ax inc ax mov ax,4c00h int 21h code ends end start 推算: 执行 call word ptr ds:0eh 最后 ip 转移到 (

7、ds:0eh) ax=3ax 中的数值为多少?指令时,先 cs 入栈,再 ip=11 入栈, (ds:0eh)=11h ,执行 inc ax? 最终题中特别关照别用 debug 不住去试试,看是什么结果。 根据单步跟踪发现,执行 call word ptr ds:0eh 指令时,显示 ds:0eh = 065d。跟踪,跟踪结果不一定正确,但还是忍ds:0000ds:0010 不是已设置成 stack 数据段了嘛,不是应该全都 是 0 的嘛。于是进行了更详细的单步跟踪,发现初始数据段中数据确实为 0, 但执行完 mov ss,ax ; mov sp,16 这两条指令后,数据段中数据发 生改变。这

8、是为什么呢?中断呗 检测点 10.5( 2)下面的程序执行后, ax 和 bx 中的数值为多少? assume cs:codesgstack segment dw 8 dup(0) stack ends codesg segment start: mov ax,stack mov ss,ax mov sp,10h mov word ptr ss:0,offset s ;(ss:0)=1ah mov ss:2,cs ;(ss:2)=cscall dword ptr ss:0 ;cs 入栈 ,ip=19h 入栈 , 转到 cs:1ah 处执行指 令;(ss:4)=cs,(ss:6)=ip nops

9、: mov ax,offset s ;ax=1ah sub ax,ss:0ch ;ax=1ah-(ss:0ch)=1ah-19h=1mov bx,cs ;bx=cs = 0c5bhsub bx,ss:0eh ;bx=cs-cs=0 mov ax,4c00hint 21h codesg ends end start c:docume1admini1debug jc10-5.exe -u0c5b:0000 b85a0c mov ax,0c5a0c5b:0003 8ed0 mov ss,ax0c5b:0005 bc1000 mov sp,00100c5b:0008 36ss:0c5b:0009 c7

10、0600001a00 mov word ptr 0000,001a0c5b:000f 36ss:0c5b:0010 8c0e0200mov 0002,cs0c5b:0014 36ss:0c5b:0015 ff1e0000call far 00000c5b:0019 90nop0c5b:001a b81a00 mov ax,001a0c5b:001d 36ss:0c5b:001e 2b060c00sub ax,000c -u0c5b:0022 8ccb mov bx,cs0c5b:0024 36ss:0c5b:0025 2b1e0e00sub bx,000e 0c5b:0029 b8004c m

11、ov ax,4c00 课程设计一将实验 7 中的 power idea 公司的数据按照图所示的格式在屏幕上 显示现来 table segmentdb 1975,1976,1977,1978,1979,1980,1981,1982,1983 db 1984,1985,1986,1987,1988,1989,1990,1991,1992 db 1993,1994,1995dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197 514 dd 345980,590827,803530,1183000,1843000,2795000,

12、3753000,4649 000,5937000 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8 226 dw 11542,14430,15257,17800 dw 5,3,42,104,85,210,123,111,105,125,140,136,153,211,199,209,224, 239 dw 260,304,333 table ends data segment db 32 dup (0) data ends code segment start: mov ax,data mov ds,ax mov

13、 ax,table mov es,ax mov bx,0 mov si,0mov di,0 mov cx,21 mov dh,2 mov dl,30 g: push cx push dx mov ax,es:bx mov si,ax mov ax,es:bx.2 mov si.2,ax ; 年份入 ds:si add si,6 mov ax,es:bx.84 mov dx,es:bx.86 call dtoc2 ; 收入转成十进制字符入 ds:si add si,10 mov ax,es:di.168 mov dx,0 call dtoc2 ; 人员数转成十进制字符入 ds:si add si

14、,6 x,es:di.210 mov dx,0call dtoc2 ; 人均收入转成十进制字符入 ds:si mov si,0 ; 设置 ds:si 指向需显示字符首地址 b: mov cx,29 c: push cx mov cl,sijcxz f ;(ds:si)=0 转到 f 执行 d: inc si pop cx loop c inc si mov al,0mov si,al ; 设置结尾符 0mov si,0 ; 设置 ds:si 指向需显示字符首地址 pop dx mov cl,2 call show_stradd bx,4 ;dword 数据指向下一数据单元 add di,2 ;

15、word 数据指向下一数据单元add dh,1 ; 指向显存下一行pop cx loop g mov ax,4c00h int 21h f: mov al,20h mov si,al ;(ds:si)=0 的数据改成空格 jmp d; 名称: dtoc2; 功能:将 dword 型数据转变为表示十进制的字符串,字符串以 0 为结尾符。 ; 参数: (ax)=dword 型数据的低 16 位; ;(dx)=dword 型数据的高 16 位;;ds:si 指向字符串首地址。; 返回:无。dtoc2:push axpush bxpush cxpush dx push si push di mov d

16、i,0 d20: mov cx,10 ; 除数为 10 call divdwadd cx,30h ; 余数 +30h ,转为字符push cx ; 字符入栈inc di ; 记录字符个数 mov cx,axjcxz d21 ; 低位商 =0 时,转到 d21 检测高位商jmp d20d21: mov cx,dxjcxz d22 ; 高低位商全 =0 时,转到 d22 执行jmp d20d22: mov cx,did23: pop ax ; 字符出栈 mov si,al inc si ;ds:si 指向下一单元 loop d23mov al,0mov si,al ; 设置结尾符 0pop di

17、pop si pop dx pop cx pop bx pop ax ret 【篇二:汇编语言第二版习题答案 ( 全 ) 王爽编写】1 个 cpu 的寻址能力为 8kb ,那么它的地址总线的宽度为 13 位。(2)1kb 的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。(3) 1kb的存储器可以存储 8192 (2八13 ) 个bit , 1024个byte(4)1gb 是 1073741824 (2A30 ) 个 byte、1mb 是 1048576(2A20 ) 个 byte、1kb 是 1024 (2八10 )个 byte。(5)8080、 8088、 80296

18、、 80386 的地址总线宽度分别为 16 根、20 根、 24 根、 32 根,则它们的寻址能力分别为 : 64 (kb)、 1( mb )、 16 ( mb )、 4 ( gb )。(6)8080、 8088、 8086、 80286 、 80386 的数据总线宽度分别为8 根、 8 根、 16 根、 16 根、 32 根。则它们一次可以传送的数据为 : 1 (b)、 1 ( b)、 2 (b)、 2 (b)、 4 ( b)。(7)从内存中读取 1024 字节的数据, 8086 至少要读 512 次, 80386 至少要读 256 次。( 8)在存储器中,数据和程序以 二进制 形式存放。解

19、题过程:( 1 ) 1kb=1024b , 8kb=1024b*8=2An , n=13 。(2) 存储器的容量是以字节为最小单位来计算的, 1kb=1024b 。(3)8bit=1byte , 1024byte=1kb (1kb=1024b=1024b*8bit )。(4)1gb=1073741824b (即 2A30 ) 1mb=1048576b (即 2A20 ) 1kb=1024b (即 2A10 )。( 5)一个 cpu 有 n 根地址线,则可以说这个 cpu 的地址总线的宽 度为n。这样的cpu最多可以寻找2的n次方个内存单元。(一个 内存单元 =1byte )。(6) 8根数据总

20、线一次可以传送 8位二进制数据(即一个字节)。2b)(7) 8086 的数据总线宽度为 16 根(即一次传送的数据为 1024b/2b=512 ,同理 1024b/4b=256 。(8)在存储器中指令和数据没有任何区别,都是二进制信息。 检测点 2.1(1) 写出每条汇编指令执行后相关寄存器中的值。 mov ax,62627ax=f4a3h mov ah,31h ax=31a3h mov al,23h ax=3123h add ax,axax=6246h mov bx,826chbx=826ch mov cx,axcx=6246h mov ax,bxax=826ch add ax,bxax=0

21、4d8h mov al,bhax=0482h mov ah,blax=6c82h add ah,ahax=d882h add al,6 ax=d888h add al,alax=d810h mov ax,cxax=6246h microsoft(r) windows dos (c)copyright microsoft corp 1990-2001. c:docume1admini1debug 0c1c:0100 mov ax,f4a3 0c1c:0103 mov ah,31 0c1c:0105 mov al,23 0c1c:0107 add ax,ax 0c1c:0109 mov bx,82

22、6c 0c1c:010c mov cx,ax 0c1c:010e mov ax,bx 0c1c:0110 add ax,bx 0c1c:0112 mov al,bh 0c1c:0114 mov ah,bl 0c1c:0116 add ah,ah 0c1c:0118 add al,6 0c1c:011a add al,al 0c1c:011c mov ax,cx 0c1c:011e -r ax=0000 bx=0000 cx=0000 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=0100nv

23、up ei pl nz na po nc0c1c:0100 b8a3f4 mov ax,f4a3-tax=f4a3 bx=0000 cx=0000 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=0103nv up ei pl nz na po nc0c1c:0103 b431 mov ah,31-tax=31a3 bx=0000 cx=0000 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=0

24、105nv up ei pl nz na po nc0c1c:0105 b023 mov al,23-tax=3123 bx=0000 cx=0000 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=0107nv up ei pl nz na po nc0c1c:0107 01c0 add ax,ax-tax=6246 bx=0000 cx=0000 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip

25、=0109nv up ei pl nz na po nc0c1c:0109 bb6c82 mov bx,826c-tax=6246 bx=826c cx=0000 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=010cnv up ei pl nz na po nc0c1c:010c 89c1 mov cx,ax-tax=6246 bx=826c cx=6246 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0

26、c1c ip=010env up ei pl nz na po nc0c1c:010e 89d8 mov ax,bxax=826c bx=826c cx=6246 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=0110nv up ei pl nz na po nc0c1c:0110 01d8 add ax,bx-tax=04d8 bx=826c cx=6246 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0

27、c1c ip=0112ov up ei pl nz ac pe cy0c1c:0112 88f8 mov al,bh-tax=0482 bx=826c cx=6246 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=0114ov up ei pl nz ac pe cy0c1c:0114 88dc mov ah,bl-tax=6c82 bx=826c cx=6246 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs

28、=0c1c ip=0116ov up ei pl nz ac pe cy0c1c:0116 00e4 add ah,ah-tax=d882 bx=826c cx=6246 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=0118ov up ei ng nz ac pe nc0c1c:0118 0406 add al,06-tax=d888 bx=826c cx=6246 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c

29、cs=0c1c ip=011anv up ei ng nz na pe nc0c1c:011a 00c0 add al,al-tax=d810 bx=826c cx=6246 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=011cov up ei pl nz ac po cy0c1c:011c 89c8 mov ax,cx-tax=6246 bx=826c cx=6246 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1

30、c cs=0c1c ip=011eov up ei pl nz ac po cy0c1c:011e 0b0c orcx,si ds:0000=20cd-q检测点 2.1(2) 只能使用目前学过的汇编指令,最多使用 4 条指令,编程计算 2 的 4 次方。mov ax,2ax=2add ax,ax ax=4add ax,ax ax=8add ax,ax ax=16microsoft(r) windows dos(c)copyright microsoft corp 1990-2001. c:docume1admini1debug-a0c1c:0100 mov ax,20c1c:0103 add

31、ax,ax0c1c:0105 add ax,ax0c1c:0107 add ax,ax0c1c:0109-rax=0000 bx=0000 cx=0000 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=0100nv up ei pl nz na po nc0c1c:0100 b80200 mov ax,0002-tax=0002 bx=0000 cx=0000 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=0103nv up ei pl nz na po nc0c1c:0103 01c0 add ax,ax-tax=0004 bx=0000 cx=0000 dx=0000 sp=ffee bp=0000 si=0000 di=0000ds=0c1c es=0c1c ss=0c1c cs=0c1c ip=0105nv up ei pl nz na po nc0c1c:0105 01c0 add ax,ax-tax=000

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

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