《汇编语言程序设计》习题答案(第二版 沈美明 温冬婵 清华大学出版社).pdf_第1页
《汇编语言程序设计》习题答案(第二版 沈美明 温冬婵 清华大学出版社).pdf_第2页
《汇编语言程序设计》习题答案(第二版 沈美明 温冬婵 清华大学出版社).pdf_第3页
《汇编语言程序设计》习题答案(第二版 沈美明 温冬婵 清华大学出版社).pdf_第4页
《汇编语言程序设计》习题答案(第二版 沈美明 温冬婵 清华大学出版社).pdf_第5页
已阅读5页,还剩36页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Page 1 of 41 1 汇编语言程序设计 第二版 汇编语言程序设计 第二版 第二章第二章 1 答 直接由指令指定的 I O 端口数为 256 个 2 答 3 答 字节单元 30022H AB H 30024H EF H 字单元 30021H AB34 H 30022H CDAB H 4 答 3017 000A 的存储单元的物理地址是 3017AH 3015 002A 的存储单元的物理地址是 3017AH 3010 007A 的存储单元的物理地址是 3017AH 5 答 该程序的第一个字的物理地址是 0AAA40H 6 答 条件标志 OF SF ZF CF 的值依次分别为 0 0 0 0 7 答 1 AX BX CX DX AH AL BH BL CH CL DH DL SP BP DI SI 注意 学生尽量不要用 SP 参与加减运算 2 CX 3 DX AX AH AL 4 CS DS ES SS 5 FLAGS 6 IP 7 SS SP BP 8 答 可以用来指示存储器地址的寄存器有 BX SP BP DI SI IP CS DS ES SS 9 答 唯一正确的是 D 第三章第三章 1 1 立即寻址 没有 2 直接寻址 7237H 3 使用 BX 的寄存器寻址没有 4 使用 BX 的间接寻址637DH 5 使用 BX 的寄存器相对寻址0D5F0H 6 基址变址寻址8E18H 7 相对基址变址004FH Page 2 of 41 2 2 根据下列要求 写出相应的汇编指令 1 ADD DX BX 2 ADDAL BX SI 3 ADD BX 0B2H CX 4 MOV AX 2A59HADD 0524H AX 5 ADD AL 0B5H 3 1 寄存器间接寻址 MOV BX OFFSET BLOCK 0AH MOV DX BX 2 寄存器相对寻址 MOV SI OAH MOV DX BLOCK SI 3 基址变址寻址 MOV BX BLOCK MOV SI OAH MOV DX BX SI 4 现有 DS 2000H BX 0100H SI 0002H 20100 12H 20101 34H 20102 56H 20103 78H 2120 0 2AH 20201 4CH 21202 B7H 21203 65H 试说明下列各条指令执行完后 AX 寄存器 的内容 1 MOVAX 1200H1200H 2 MOVAX BX0100H 3 MOVAX 1200 4C2AH注意 是字单元 4 MOVAX BX 3412H 同上 5 MOV1100 BX 4C2AH 6 MOVAX BX SI 7856H 7 MOV AX 1100 BX SI 65B7H 5 1 7CD9H 2 1200H 3 6319H 6 MOV BX 2000H LES DI BX MOV AX ES DI 7 转向地址 OBJ 的值分别为 1 064DH 2 0691H 3 05E0H注意有符号数的 符号位 8 1 MOV AX 0ABH立即数寻址无物理地址 2 MOVAX BX寄存器寻址同上 3 MOV AX 100 直接寻址20100H 4 MOVAX VAL直接寻址20050H 5 MOVAX BX 寄存器间接寻址20100H 6 MOV AX ES BX 直接寻址21100H 7 MOVAX BP 寄存器间接寻址 20010H Page 3 of 41 3 8 MOVAX SI 同上200A0H 9 MOVAX BX 10 寄存器相对寻址20110H 10 MOVAX VAL BX 同上20150H 11 MOVAX BX SI 基址变址寻址201A0H 12 MOVAX VAL BX SI 相对基相变址寻址201F0H 9 的指令 MOVAX BX 0CH MOV ZREO AX 2 的指令 MOV AX ARRAY BX MOV ZREO AX 10 MOVAX TABLE是把符号地址 TABLE 里的内容送到 AX 里 指令执行完后 AX 1234H LEAAX TABLE是把符号地址 TABLE 的有效地址 这里是偏移量 送到指定寄存 器 AX 里 指令执行完后 AX 0032H 11 执行完指令后 AX 1E00H 12 LEAAX CSTRING MOV DL AX MOV DH AX 6 13 这个 图 很麻烦了 所以就不画了 大家可以看一下课本上 P51 P53 很清楚 看 完了这道韪也会了 14 LES BX 2000 MOVAX ES BX 注意 一开始我写的是 MOVAX ES 8000H 后来看到题目里要求写两条指令 所以 一条就不行了 就要画蛇添足 15 运算结果 SF ZF CF OF 各位的值 从左至右依次往下 1 74D4H000 0 2 A5C1H1001 3 4240 H0010 4 0000 H0110 16 接上表 1 5D140000 2 A8701001 3 D8701000 4 34E40010 17 1 MOVAX Z 把 Z 送到 AX SUBAX X Z X ADDAX W W Z X MOV Z AX 结果保存在 Z 中 2 MOVAX R R 送到 AX 中 ADDAX 9 R 9 MOV BX X X 送到 BX 中 ADD BX 6 X 6 ADD AX BX R 9 X 6 结果保存在 AX 中 MOV BX W W 送到 BX 中 SUBBX AX W R 9 X 6 连续减去两个数 相当于减去这两个数的和 Page 4 of 41 4 MOVZ BX 最终结果送到 Z 中 3 MOVAX W 把 W 送到 AX IMUL X W X注意 低十六位保存在 AX 里 高十六位保存在 DX 里 MOV BX Y 把 Y 送到 BX 里 ADD BX 6 Y 6 IDIV BX W X Y 6 注意 商保存在 AX 里 余数保存在 DX 里 MOV Z AX 把商送到 Z 中 MOV R DX 把余数 送到 R 中 4 MOVAX W 把 W 送到 AX 中 SUB AX X W X CWD 把 AX 中的十六位带符号数扩展成为 32 位 低十六位 保存在 AX 中 高十六位保 在 DX 中 MOV BX 5 把 5 送到 BX 中 IDIV BX W X 5被除数为 32 位 除数为 16 位 商为 16 位 IMULY 上一步结果再乖以 Y 积为 32 位 MOV BX 2 把 2 送到 BX 中 IMUL BX 上一步乘法所得的积再乘以 2 各为 64 位 MOV Z EAX 把结果中低 32 位放入 Z 双字单元中 MOV Z 4 EDX 把结果中高 32 位放入 Z 4 双字单元中 18 指令本条指令执行完后 AX 的内容执行完后 CF SF ZF 的值 MOVAX 1234H1234H000 MOV CL 41234H000 ROLAX CL2341H100 DECAX2340H100 MOV CX 42340H100 MUL CX8918H000 INT 20H 程序结束后 AX 8918H DX 0000H 19 指令执行完后 AX 的内容执行完后 CF SF ZF 和 OF 的值 MOVAX 000010 DECAXFFFFH0100 ADDAX 7FFFH7FFEH0000 ADDAX 28000H0101 NOTAX7FFFH0101 SUB AX 0FFFFH8000H1101 ADDAX 8000H0000H1011 SUB AX 1FFFFH1101 ANDAX 58D1H58D1H0000 SALAX 1B1A2H0101 SAR AX 1D8D1H0100 NEGAX272FH1000 RORAX 19397H1001 20 1 MOVAX DATAX ADD DATAY AX 2 MOVAX DATAX ADD DATAY AX MOV AX DATAX 2 ADD DATAY 2 AX Page 5 of 41 5 3 本组指令的作用是 BX DATAX DATAY 1 CF 的值 带进位加法 4 MOV AX DATAX MUL DATAY 结果的高十六位保存在 DX 里 低十六位保存在 AX 里 5 MOVAX DATAX MOV DX DATAX 2 MUL DWORD DATAY 结果的高三十二位保存在 EDX 里 低三十二位保存在 EAX 里 这里所用的 DWORD 为一属性操作符 在第四章会学到 6 MOVAX DATAX DIV17H 结果商保存在 AL 中 余数在 AH 中 7 MOVAX DATAX CDW DIV DATAY 21 NEG DX NEGAX SBB DX 0 22 MOVAX A 把双字长数的低字放到 AX 中 MOV DX A 2 把双字长数的高字放到 DX 中 TEST DX 8000H 测试双字长数的符号 JZRIGHT 如果是非负数 则直接保存 NEG DX 如果是负数 则求补 NEGAX SBB DX 0 RIGHT MOV B AX MOV B 2 DX 23 每条指令单独执行完后的结果依次为 1 9AH 2 61H 3 0FBH 4 1CH 5 0 6 0E3H 24 执行指令序列后 BX 的内容为 0DAH 25 1 把 53D 乘以 2 的程序 MOVAX 35H 53D 35H SHLAX 1 2 把 53 除以 2 的程序 MOVAX 35H SHRAX 1 其他的同理 26 这段程序完成的功能是 把 DX AX 中的双字数据左移 4 位 相当于乘以 16D 27 各条指令单独执行后 DX 的值依次为 1 5CH 2 17H 3 05C8H 4 72H 5 2017H 6 0CDH 7 0172H 8 05CCH 9 0DCH 28 该程序段执行完后 BX 寄存器的内容是 C02DH 29 1 从左到右把 CONMAE 中的字符串伟送到 PRLINE 的程序实现 LEA SI CONAME 把 CONAME 中第一个字节的偏移地址送到 SI 中 Page 6 of 41 6 LEA DI PRLINE 把 PRLINE 中第一个字节 的偏移地址送到 DI 中 MOV CX 20 把重复次数放到 CX 里 CLD 让 SI DI 从低地址指向高地址 即从左到右传送 REP MOVSB 传送 2 从右到左把 CONMAE 中的字符串传送到 PRLINE 中的程序实现 LEA SI CONAME LEA DI PRLINE MOV CX 20 STD 和上面唯一不同的就是这次是从右到左 所以要从高地址批向低地 址 REPMOVSB 3 把 CONAME 中的第三和第四个字节装入 AX 的程序实现 LEA SI CONAME 3 LODSW 4 把 AX 寄存器的内容存入从 PRLINE 5 开始的字节中的程序实现 LEA DI PRLINE 5 STOSW 5 检查 CONAME 字符串中有无空格字符 如有把它伟送给 BH 寄存器的程序实现 LEA DI CONAME 把 CONAME 中第一个字符偏移地址放入 DI 中 MOV CX 20 把重复次数放到 CX 中 MOVAL 20H 把空格符的 ASCII 值放入 AL 中 CLD 从低到高 REPNESCASB 比较 MOV BH DI 1 R 把检查到的空格符送到 BH 中 30 MOV CX 12H 把重复次数放到 CX 中 这里用十六进制表示 MOV SI 0 初始化 SI MOVAX 26H 把输出换行回车 mov dl 0AH mov ah 02H int 21H Page 15 of 41 15 jmp input exit ret MAIN ENDP END start 5 3 将 AX 寄存器中的 16 位数分成 4 组 每组 4 位 然后把这四组数分别放在 AL BL CL DL 中 model small data x DB 4 dup stack 100H code MAIN PROC FAR start push ds and ax 00H push ax mov ax 1234H mov cx 04H mov si 00H lop push cx mov cl 04H rol ax cl push ax and al 0FH mov BYTE PTR x si al pop ax pop cx add si 2 Loop lop mov al X mov bl X 2 mov cl X 4 mov dl X 6 print mov ah 02H int 21H mov dl al mov ah 02H int 21H Page 16 of 41 16 mov dl bl mov ah 02H int 21H mov dl cl mov ah 02H int 21H exit ret MAIN ENDP END start 5 4 编写一个程序 要求比较两个字符串 STRING1 和 STRING2 所含字符是否相同 若相同 则显示 MATCH 若不同在显示 NO MATCH model small data STRING1 DB I must study hard STRING2 DB I must study hard XDB MATCH YDB NO MATCH stack 100H code main proc far Start push dx mov ax 0 push ax mov ax data mov ds ax mov es ax lea si STRING1 lea di STRING2 cld mov cx string2 string1 type STRING2 ret End start 5 5 编写一个程序 要求能从键盘接收一个个位数 N 然后响铃 N 次 响铃的 ASCII 为 07 这题比较有意思 呵呵 model small code main proc far start Page 17 of 41 17 push ds sub ax ax push ax input mov ah 01H int 21H cmp al 20H je exit cmp al 30H jle input cmp al 3AH jge input sub al 30H mov cx ax and cx 0FFH lop mov dl 07H mov ah 2H int 21H loop lop jmp input exit ret main endp end start 5 6 编写程序 将一个包含有 20 个数据的数组 M 分成两个数组 正数数组和负数数组 N 并分别把这两个数组中的数据个数显示出来 model small 386 data M DB 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 P DB 20 dup N DB 20 dup code MAIN PROC FAR start PUSH ds AND ax 0 PUSH ax MOV ax data mov ds ax MOV bx 0 MOV si 0 Page 18 of 41 18 MOV di 0 MOV cx 20D cmpe CMP M bx 0 JL ifLow hight MOV al byte ptr M bx MOV byte ptr P si al inc si JMP commonContrl ifLow MOV al byte ptr M bx MOV byte ptr N di al INC di commonContrl INC bx loop cmpe mov ax si call showNumber call printCR mov ax di call showNumber exit ret MAIN ENDP 注意 ShowNumber 这个子过程有问题 请自行修改 showNumber PROC NEAR covernum DAA MOV dx ax MOV cl 2H show ROL dl 4H push dx AND dl 0fH ADD dl 30H MOV ah 02H int 21H pop dx loop show ret showNumber ENDP printCR PROC NEAR Page 19 of 41 19 mov dl 0aH mov ah 02H int 21H mov dl 0dH mov ah 02H int 21H ret printCR ENDP end start 5 7 编制一个汇编语言程序 求出首地址为 DATA 的 100D 字数组中的最小偶数 并把它放在 AX 中 此题根据题意要求应该使用完整汇编格式 因为精简格式也使用 DATA dataare segment DATADW 3322H 4555H 200H 3544H 1245H num DB DATA 2 dataare ends code segment assume cs code ds dataare MAIN PROC FAR start push ds mov ax 0H push ax mov ax dataare mov ds ax mov dx 0H 偶数数量计数 mov cx Word ptr num mov si 0H isO mov bx WORD PTR DATA si shr bx 1H jnc addDX jmp commonControl addDX ADD dx 1H cmp dx 1H jefirstAXValue compare mov bx WORD PTR DATA si cmp bx ax jge commonControl mov ax bx commonControl Page 20 of 41 20 ADD si 2H loop isO jmp exit firstAXvalue mov ax WORD PTR DATA si jmp compare exit ret MAIN ENDP code ends END start 5 8 没有做 5 9 编写一个汇编语言程序 要求从键盘上接收一个思维的十六位进制数 并在终端上显示 与它等值的二进制数 model small 386 code main proc far start push ds mov ax 0 push ax mov ax 0 mov cx 4 mov dx 0 input mov ah 1H int 21H cmp al 30H jlinput cmp al 39H jle s cmp al 61H jlinput cmp al 66H jginput sub al 27H s sub al 30H add dl al cmp cx 1H jef rol dx 4 Page 21 of 41 21 f loop input exit call print ret main endp print proc near mov cx 10H p rol dx 1 push dx and dx 1 add dx 30H mov ah 2 int 21H pop dx loop p ret print endp end start 5 10 设有一段英文 其变量字符名为 ENG 并以 字符结束 试编写一程序 查对单词 SUN 在该文中的出现次数 并以格式 SUN XXXX 显示出次数 model small 386 data ENGdb SUN s SUN JAVA 24H 24H MESSAGE db SUN stack 100H code MAIN PROC FAR start PUSH DS AND AX 0 PUSHAX MOV AX data MOV DS AX MOV AX 0H MOV SI 1H subSI1 SUB SI 1H subSI2 Page 22 of 41 22 SUB SI 1H compareS ADD SI 1H MOV DL ENG SI CMP DL 24H JEprint CMP DL 53H JNE compareS compareU ADD SI 1H MOV DL ENG SI CMP DL 55H JNE subSI2 compareN ADD SI 1H MOV DL ENG SI CMP DL 4EH JNE subSI1 INC AX JMP compares print LEA DX MESSAGE PUSHAX MOV AH 09H INT 21H POP AX call showNumber exit ret MAIN ENDP 注意 ShowNumber 这个子过程有问题 请自行修改 showNumber PROC NEAR covernum DAA MOV dx ax MOV cl 4H show ROL dx 4H push dx AND dx 0fH ADD dx 30H MOV ah 02H int 21H pop dx Page 23 of 41 23 loop show ret showNumber ENDP END start 5 11 从键盘输入一系列以 为结束副的字符串 然后对其中的非数字字符计数 并显示出计 数结果 model small 386 code MAIN PROC FAR start push ds mov ax 0 push ax mov cx 0 input mov ah 1H int 21H compare cmp al 24H jeprint cmp al 30H jladdCount cmp al 39H jgaddCount addCount add ax 1H jmp input print call showNumber exit ret MAIN ENDP 注意 ShowNumber 这个子过程有问题 请自行修改 showNumber PROC NEAR covernum DAA MOV dx ax MOV cl 2H show ROL dl 4H push dx AND dl 0fH ADD dl 30H Page 24 of 41 24 MOV ah 02H int 21H pop dx loop show ret showNumber ENDP END start 5 12 有一个首地址为 MEM 的 100D 字数组 试编制程序删除数组中所有为零的项 并将后 续项向前压缩 最后将数组的剩余部分补上零 model small 386 stack 100H data memdw 12 0 0 0 0 0 1 2 3 6 4 7 8 2 1 0 0 54 5 0 2 4 7 8 0 5 6 2 1 4 8 5 1 45 7 5 1 2 0 2 4 0 2 54 0 12 0 0 0 0 0 1 2 3 6 4 7 8 2 1 0 0 54 5 0 2 4 7 8 0 5 6 2 1 4 8 5 1 45 7 5 1 2 0 2 4 0 2 54 0 45 7 5 1 2 0 2 4 0 2 code MAIN PROC FAR start push ds and ax 0 push ax mov ax data mov ds ax mov ax 0H mov bx 64H mov cx 64H mov si 0FFFEH repeat ADD si 2H cmp MEM si 0H JEcalls loop repeat calls INC ax call sort cmp ax 1H JElastValue DEC cx jmp repeat exit Page 25 of 41 25 ret lastValue mov mem bx 0H DEC cx jmp repeat MAIN ENDP sort PROC NEAR push cx push si sub si 2H s add si 2H mov dx mem si mov mem si 2 dx loop s return pop si pop cx ret sort ENDP END start 第六章第六章 2 答 1 NAME1 NAMELIST 2 MOVAX DATA 假设结构变量 NAME1 定义在数据段 DATA中 MOV DS AX MOV ES AX MOVAH 10 LEA DX NAME1 INT 21H MOV CL NAME1 ACTLEN MOV CH 0 LEA SI NAME1 NAMEIN LEA DI DISPFILE CLD REPMOVSB 6 答 SKIPLINES PROC NEAR PUSH CX PUSH DX Page 26 of 41 26 MOV CX AX NEXT MOVAH 2 MOV DL 0AH INT 21H MOVAH 2 MOV DL 0DH INT 21H LOOP NEXT POPDX POPCX RET SKIPLINES ENDP 7 答 dseg segment num dw 76 69 84 90 73 88 99 63 100 80 n dw 10 s6 dw 0 s7 dw 0 s8 dw 0 s9 dw 0 s10 dw 0 dseg ends code segment main proc far assume cs code ds dseg start push ds sub ax ax push ax mov ax dseg mov ds ax call sub1 ret main endp sub1 proc near push ax push bx push cx push si Page 27 of 41 27 mov si 0 mov cx n next mov ax num si mov bx 10 div bl mov bl al cbw sub bx 6 sal bx 1 inc s6 bx add si 2 loop next pop si pop cx pop bx pop ax ret sub1 endp code ends end start 8 答 data segment maxlen db 40 n db table db 40 dup char db a 查找字符 a even addr dw 3 dup data ends code segment assume cs code ds data main proc far start push ds mov ax 0 push ax mov ax data mov ds ax Page 28 of 41 28 lea dx maxlen mov ah 0ah int 21h 从键盘接收字符串 mov addr offset table mov addr 2 offset n mov addr 4 offset char mov bx offset addr 通过地址表传送变量地址 call count 计算 CHAR 的出现次数 call display 显示 ret main endp count proc near count 子程序 push si push di push ax push cx mov di bx mov si bx 2 mov cl byte ptr si mov ch 0 mov si bx 4 mov al byte ptr si mov bx 0 again cmp al byte ptr di jne l1 inc bx l1 inc di loop again pop cx pop ax pop di pop si ret count endp display proc near display 子程序 Page 29 of 41 29 call crlf 显示回车和换行 mov dl char mov ah 2 int 21h mov dl 20h mov ah 2 int 21h mov al bl and al 0fh add al 30h cmp al 3ah jl print add al 7 print mov dl al int 21h call crlf ret display endp crlf proc near crlf 子程序 mov dl 0dh mov ah 2 int 21h mov dl 0ah mov ah 2 int 21h ret crlf endp code ends end start 第七章第七章 1 答 CLRB MACRO N ARRAY CLD MOV CX N MOVAL 20H LEA DI ARRAY REPSTOSB ENDM Page 30 of 41 30 2 答 WAGES MACRO RATE HOUR MOVAL RATE MOV BL HOUR MUL BL 计算周工资 ADDAX AX ADDAX AX 一个月有 4 周 MOVWAG AX 暂存中间结果 ADD BL BL ADD BL BL 计算月出工小时数 MOVAL BL MOVAH 0 MOV BL 10 DIV BL MOV BL 3 MUL BL 计算奖金 ADD WAG AX 计算工资总数 ENDM 宏展开 1 MOVAL R1 1 MOV BL 42 1 MUL BL 1ADD AX AX 1ADD AX AX 1 MOVWAG AX 1ADD BL BL 1ADD BL BL 1 MOVAL BL 1 MOVAH 0 1 MOV BL 10 1 DIV BL 1 MOV BL 3 1 MUL BL 1ADD WAG AX 3 答 1 调用有效 1 PUSH AX 2 MOVAX P1 2 SUBAX P2 Page 31 of 41 31 1 CMPAX 0 1 JGE 0000 1 NEGAX 1 0000 MOV DISTANCE AX 1 POPAX 2 调用有效 1 PUSH AX 2 MOVAX BX 2 SUBAX SI 1 CMPAX 0 1 JGE 0001 1 NEGAX 1 0001 MOV X DI AX 1 POPAX 3 调用无效 有错误指令 1 0002 MOV 240H AX 4 调用有效 但无意义 宏展开略 4 答 SEND MACRO SCHARS DCHARS LOCAL NEXT EXIT PUSHAX PUSH SI MOV SI 0 NEXT MOVAL SCHARS SI MOV DCHARS SI AL CMPAL 24H JZ EXIT INC SI JMPNEXT EXIT POP SI POPAX ENDM 5 答 BIN SUB MACRO OPERAND COUNT RESULT LOCAL NEXT LEA BX OPERAND MOV CX COUNT DEC CX MOVAL BX NEXT INC BX Page 32 of 41 32 SUB AL BX LOOP NEXT MOV RESULT AL ENDM 7 答 宏展开 2 DATA0 DW 2 DATA1 DW 9 答 1 MOVTAB 0 1 MOVTAB 1 1 1 MOVTAB 2 2 1 MOVTAB 3 3 1 MOVTAB 4 4 1 MOVTAB 5 5 1 MOVTAB 6 6 10 答 STORE MACRO X IRPC X 0123456 MOVTAB cseg segment main proc far mov ax dseg mov ds ax mov si 0 mov cx 10 lea bx scode input mov ah 01 键盘输入 int 21h and al 0fh ASCII 数字 xlat 换码 mov buffer si al 存入缓冲区 inc si 修改地址指针 loop input 输入下一个数字 mov ax 4c00h 返回 DOS Page 35 of 41 35 int 21h main endp cseg ends end main 3 答 24 行 80 40 列 2 3920 0F50H 4 答 mov dh 0ch 第 12 行 mov dl 08h 第 8 列 mov bh 0 0 页 mov ah 2 置光标 int 10h BIOS 调用 5 答 mov ah 7 屏幕初始化 mov al 0 全屏为空格 mov bh 07h 正常属性 mov ch 12 左上行 mov cl 0 左上列 mov dh 22 右下行 mov dl 39 右下列 int 10h BIOS 调用 6 答 1 mov ah 3 读光标位置 mov bh 0 页号 int 10h BIOS 调用 2 mov dh 18h 第 25 行 mov dl 0 第 0 列 mov bh 0 0 页 mov ah 2 置光标位置 int 10h BIOS 调用 3 mov ah 2 置光标位置 mov bh 0 0 页 mov dx 0 0 行 0 列 int 10h BIOS 调用 mov ah 9 显示字符及属性 mov al M 字符 mov bh 0 0 页 mov bl 7 正常属性 mov cx 1 显示次数 int 10h BIOS 调用 Page 36 of 41 36 7 答 message db Try again you have Count db n db starfighters left add cl 30h 二进制数 ASCII mov count cl 存入 COUNT lea dx message 字符串地址 mov ah 09 显示字符串 int 21h DOS 调用 9 答 mess db What is the date mm dd yy 07 date db 10 0 10 dup mov ah 09 显示字符串 lea dx mess 字符串地址 int 21h mov ah 0ah 键盘输入 lea dx date 缓冲区地址 int 21h 11 答 MODE COM2 12 N 8 1 第十章 1 答 1 EXYRN SUBPRO FAR 2 PUBLIC SUBPRO 2 答 1 PUBLIC QTY VALUE PRICE 2 EXTRN QTY BYTE VALUE WORD PRICE WORD 3 答 模块 1 PUBLIC VAR1 VAR2 LAB3 模块 2 PUBLIC VAR3 LAB2 EXTRN VAR1 DWORD VAR2 BYTE LAB1 NEAR LAB3 FAR 模块 3 PUBLIC LAB3 EXTRN VAR1 DWORD VAR2 BYTE LAB1 NEAR LAB2 FAR Page 37 of 41 37 4 答 EXTRN SUBMUL FAR SSEG SEGMENT DW 64 DUP SSEG ENDS DSEG SEGMENT QTY DW PRICE DW DSEG ENDS CSEG1 SEGMENT ASSUME CS CSEG1 DS DSEG SS SSEG CALLMUL PROC FAR MOVAX DSEG MOV DS AX MOVAX PRICE MOV BX QTY CALL FAR PTR SUBMUL CALLMUL ENDP CSEG1 ENDS END CALLMUL PUBLIC SUBMUL CSEG2 SEGMENT ASSUME CS CSEG2 SUBMUL PROC FAR MUL BX RET SUBMUL ENDP CSEG2 ENDS END 5 答 1 D SEG SEGMENT 2 X DW 16 DUP 3 Y DW 16 DUP 4 D SEG ENDS Page 38 of 41 38 5 E SEG SEGMENT 6 R DW 16 DUP 7 E SEG ENDS 8 C SEG SEGMENT 9ASSUME CS C SEG DS D SEG ES E SEG 10 MAIN PROC FAR 11 MOVAX D SEG 12 MOV DS AX 13 MOVAX E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论