《汇编语言》王爽_答案.pdf

所需积分/C币:21 2011-12-13 13:59:23 213KB PDF
233
收藏 收藏
举报

汇编语言 王爽 习题 答案
第3章寄存器(内存访问) 检测点3.1 (1)在 Debug中,用“d0:01f”查看内存,结果如下 0000:00007080F030EF6030E2-0080801266202260 0000:00106226E6D6CC2E3C3B-ABBA000026066688 下面的程序执行前,AX-0,BX-0,写出每条汇编指令执行完后相关寄存器的值。 mov ax. 1 mov ds, ax mov ax,[0000]AX-2662H mov bx, [0001 BX=E626H mov ax, x AX=E626H mov ax, [0000 AX=2662H mOy bx, [0002 BX=D6E6H add ax bx ax-FD48h add ax, [0004 AX=2C14H mov ax,0 AX-0000H mov al, [0002 AX=00E6H mov bx, 0 Bx=0000H moy b1, [000C] BX-0026H dd al. bl ax=000CH (2)内存中的情况如图3.6所示 各寄存器的初始值:CS=2000H,IP=0,DS=1000H,AX=0,BX=0 ①写出CPU执行的指令序列(用汇编指令写出)。 ②写出CPU执行每条指令后,CS、IP和相关寄存器中的数值。 ③再次体会:数据和程序有区別吗?如何确定内存中的信忘哪些是数据,哪些 是程序? 解:初始值:CS=2000H,IP=0,DS=1000,AX=0,BX=0 ①② moax,6622HAX-6622H其他寄存器保持不变,以下同理 imp off: 0100 CS=OffOH, IP=0100H mov ax, 2000H AX-2000H mov ds. ax Ds=20000H mov ax, [0008 AX=C389H mov ax, [0002 AX-EA66H ③没有区别,被CS:IP指向的信息是程序;被传送、运算等指令操作的是数据。 检测点3.2 (1)补全下面的程序,使其可以将10000~1000FH中的8个字,逆序复制到 2000004~2000FH中。逆序复制的含义如图3.17所示(图中内存里的数据均为假 设) mov ax. 1000H mov ds, ax mov ax, 2000H mov ss, ax mov sp, 10H push [o push [2 push [4 push [6 push [8] push [A] push [C] push LE (2)补全下面的程序,使其可以将1000004~1000FH中的8个字,逆序复制到 200000-~2000FH中。 mov ax 2000H mov as, ax mov ax, 1000H mov ss, ax mov sp, O pop pop LC pop pop [8 pop pop[们 pop pop 实验2用机器指令和汇编指令编程 1.预备知识: Debug的使用 略 2.实验任务 4 (1)使用 Debug,将上面的程序段写入内存,逐条执行,根据指令执行后的实际 运行情况填空。 mov ax, ffff mov ds, ax moy ax. 2200 mov ss, ax mov sp, 0100 ⅡOyax,[0];ax=58EA dd ax,[2]; ax=5CCA mov bx, [4: bx=30F0 adbx,[6];bx-6021 push ax;sp=00FE;修改的内存单元的地址是220FE,内容为5CCA push bx;sp=00FC;修改的内存单元的地址是220FC,内容为6021 pop ax sp-OOFE; ax=6021 pop bx sp=0100; bx=5CCA push[4];sp=00FE;修改的内存单元的地址是220FE,内容为30F0 push[6];sp-00FC;修改的内存单元的地址是220FC,内容为2F31 注:内存中的数据会因机器、环境而异 (2)仔细观察图3.19中的实验过程,然后分析:为什么2000:0~2000:f中的内 容会发生改变? 解:t命令为单步中断,CP会保护现场,即顺序把标志寄存器、CS、IP入栈, 此题是关于后面章节的中断问题。 第4章第一个程序 实验3编程、编译、连接、跟踪 (1)将下面的程序保存为t1.asm,将其生成可执行文件ti.exe。 assume Cs: codesg codesg segment mov ax, 2000h mov ss, ax mov sp, O add sp, 10 pop ax pop bx push ax push bx pop ax pop bX mov ax, 4c00h int 21h codesg ends en 解:略 (2)用 Debug跟踪tl.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内 容解 : C: \IlDOS\systen32C ID exe debug e:tl ere A8=25I5I5 B3=FGGE CH=0016 D =GII SP=GEE BP=GGGG 5IGIG DI=GEIS DS=13GA ES-13CA SS=13DA CS-13DA IP=0003 NU UP EI PL NZ NA PO NG 3Dn:匹E38EDE MOU Ss A9 A8=28=B(=16DR=6 sP=四BP=sI= GEIE DI=ggg 8=13cAE8=13cA SS=2555 CS=13DA IP=G5B NU UP EI PL NE NA PO NC 3DA: 5155B8 83C4EA ADD sP。-A 的=2gB=cH=因16DK=8SP=nBP=因 sI=四 DI=555I DS-13CA ES-13CA SS-2000 CS-13DA IP-Q00B NU UP EI PL NZ NA PE NG 13D:gB58 POP 8=B=@吧=16D8656SP=四9BP=的SI=EDI=g DS=13CA ES=13CA $S=2000 CS=13DA IP=000C NU UP EI PL NZ NA PE NC 13DA: 900C 5B POP 的x=B=EH=16D-96sP= SE BP=的SI=因DI= DS=13CA ES-13CA SS=2000 CS-13DA IP=000D NU UP EI PL NZ NA PE NG 13DA:EED5因 PUSH A8=5555 B0=555 C=5516 D=555 SP=5C BP=GGG 5I=5 DI=RFE DS=13CA ES=13GA $S=2000 CS=13DA IP=OOBE NU UP EI PL NZ NA PE NG SDA: 5E 53 PUSH Bg 的的H"=G=8616D=SP=BP=I=阳DI= DS=13GA ES=13GA 59=2000 C6=13DA IP=000F NU UP EI PL NZ NA PE NG 13DA: 000F 58 POP AH=园园BH=因四cH=6DR=98sP=回EcBP=SI=DI=cg DS=13 GA ES =13CA SS=200G CS=13DA IP=0010 NU UP EI PL NZ NA PE NG 13DA: 0010 5B POP A8=晒B=丽CK=16D=8P=EEBP=SI=DI=刚 DS=13CA ES=13CA SS=2000 CS=13DA IP=0011 NU UP EI PL NZ NA PE NC 13DA:1士B8g84c MOU A8 4C55 (3)PSP的头两个字节是CD20,用 Debug加载ti.exe,查看PSP的内容 解 : C: IlDo S\systen32\C] D). exe- debug e:t1. exe FX d ds:g ff 13cECD2Fy硼9四FE1DF4PDDD3 3CHEG19 5 DD CC ED-51 51 1 5 FF FF FE H3CA:0020 FFFFFFFFFFFF FF FF-FF FF FFFF 8A 13 4C 01 3CA=5535 9D 1214 55 1 8 55 CA 13-FF FF FF FF 55 GG G5 GI5 H3cA回45回日回回丽丽日 丑3cA=5cD21cB囚g丽丽222 13G=622028228202828-B的2四228 13G=26202822日2822-的的因 13CEBD653A5C74312E65阳865D53544552 ee\tiexi STER 13CA93D4138D64642265-72E22466F2= ddress,For H3CA:00A0 20 65 78 61 6D 70 6C 65-3A OD 20 6F 6E 20 4E 54 example:. on NT 13c:D6 i 55 5I 55] 55 5I丽的丽的留∵…. cify an 98432275988是品2D:1 3cEF函函g-睏ga8ggg 第5章[BX]和l00指令 实验4[bx和10op的使用 (1)编程,向内存0:200~0:23F依次传送数据0~63(3FH)。 解 assume Cs: codesg codesg segment mov ax, 0 mov ds. ax IOV bX, 200H mov al,o mOV Cx. 64 s: mov [bx,al inc bX inc al loop s mov ax, 4c00h int 21h codesg ends en (2)编程,向内存0:200~0:23F依次传送数据0~63(3FH),程序中只能使用9 条指令,9条指令中包括“ mov ax,4c00h”和“int2lh”。 解: assume cs: codesg codesg segment mov ax, 2 mov ds, ax mov bx, 0 mov Cx, 61 s: mov [bx1,b1 ⊥nCbX loop s mov ax, 4c00h int 21h codesg ends end (3)下面的程序的功能是将“ mov ax,4c0Oh”之前的指令复制到内存0:200处, 补全程序。上机调试,跟踪运行结果。 assume cs code code segment mov ax, cs mov ds, ax Oh mov ax, 0020 Ioves, dx moV bX, mov cx,ITh mov es:lbx」,al inc bX loop s mov ax, 4c00h nt 2lh code ends 9 第6章包含多个段的程序 检测点6.1 (1)下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,完 成程序 assume Cs: codesg codesg segment dw 0123h 0156h 0789h, Oabch Odefh, ofedh, Ocbah, 0987h start: mov ax. 0 mov ds. ax moy bx. 0 mov c, 8 s:moⅴax,[bx」 mov cs: [ bx, ax add bx, 2 mov ax. c00h nt 21h codesg ends end start (2)下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,数 据的传送用栈来进行。栈空间设置在程序内。完成程序: assume CS: codesg codesg segment

...展开详情
试读 59P 《汇编语言》王爽_答案.pdf
立即下载 身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 分享精英

关注 私信
上传资源赚钱or赚积分
最新推荐
《汇编语言》王爽_答案.pdf 21积分/C币 立即下载
1/59
《汇编语言》王爽_答案.pdf第1页
《汇编语言》王爽_答案.pdf第2页
《汇编语言》王爽_答案.pdf第3页
《汇编语言》王爽_答案.pdf第4页
《汇编语言》王爽_答案.pdf第5页
《汇编语言》王爽_答案.pdf第6页
《汇编语言》王爽_答案.pdf第7页
《汇编语言》王爽_答案.pdf第8页
《汇编语言》王爽_答案.pdf第9页
《汇编语言》王爽_答案.pdf第10页
《汇编语言》王爽_答案.pdf第11页
《汇编语言》王爽_答案.pdf第12页

试读结束, 可继续读6页

21积分/C币 立即下载