导航:首页 > 程序命令 > u命令汇编

u命令汇编

发布时间:2022-04-28 16:44:40

A. 使用汇编语言U命令,它最多会显示多条信息

U命令不指定范围或长度时,默认反汇编32个字节。
可以用 U <起点> <终点> 或者 U <起点>L<长度>格式指定范围或指定长度。
若使用指定范围或长度的格式,最多可以反汇编64KB长的代码。

因为x86指令不是等长指令,而是变长的,所以U命令是按代码字节数计数,而不是按指令的条数计数。

B. 汇编指令机器码问题

机器指令有它的编码规则,以若干位代表不同的操作码,若干位代表寻址方式组合,若干位表示操作数类型是字还是字节,若干位表示各个操作数,等等。
8086指令的具体编码可以查阅一些机器语言参考手机。

一般说来,CPU里面只有少数几个寄存器,只需要不多的几位即可区分不同的寄存器。比如区分8个寄存器只需要 3 bit 进行编码。
因此,用寄存器寻址的机器指令,长度较短。

而内存或立即寻址,需要给出8位或16位的操作数,或内存地址,它们需要的位数显然比寄存器要多,因而机器指令也就会变长。

sub ax, ax指令两个操作数都是寄存器,所以操作码+寻址方式组合+数据类型+两操作数的寄存器代码这些组合后只有两个字节: 2B C0

mov ax, 0这条指令中,16位的源操作数--立即数0就要单独占用两个字节,其它操作码和目的操作数等的编码再占用一个字节,指令长度就成了三个字节: B8 00 00 (后面的两个00 00就是源操作数 0 )

C. 如图,dos下我想从键盘输入一个字符,用u命令汇编,然后用t命令一步一步跟踪,请问接下去怎么操作,

lz这么晚了还在学习,精神可嘉啊。在网络上问汇编一般很少会有回答的,你最好去csdn的汇编模块去问。如果在没有参数的情况下使用,则u命令分解 20h 字节(默认值),从前面u命令所显示地址后的第一个地址开始,如果有参数的话,需要指定要反汇编代码的起始地址和结束地址,或起始地址和长度(有关有关range参数有效值的信息可以网上查查),例如:

要反汇编16(10h)字节,从地址04BA:0100开始,请键入以下命令:
u04ba:100l10
Debug按以下格式显示结果:
04BA:0100206472AND[SI+72],AH
04BA:010369DB69
04BA:01047665JBE016B
04BA:0106207370AND[BP+DI+70],DH
04BA:010965DB65
04BA:010A63DB63
04BA:010B69DB69
04BA:010C66DB66
04BA:010D69DB69
04BA:010E63DB63
04BA:010F61DB61
如果只显示从04BA:0100到04BA:0108特定地址的信息,请键入以下命令:
u04ba:01000108
Debug显示以下内容:
04BA:0100206472AND[SI+72],AH
04BA:010369DB69
04BA:01047665JBE016B
04BA:0106207370AND[BP+DI+70],DH
++++

debug的t有两个参数address和number,你这里是需要指定启动跟踪指令的地址(如果你省略address参数,跟踪将从程序的 CS:IP 寄存器所指定的地址开始,address参数有效值的信息你也可以网上查查);number是指定要跟踪的指令数,必须是十六进制数,默认为1,这里说一下,必须在address参数之前使用等号 (=) 以便将它与 number 参数区分。例如:

t10
假设当前在CS:100,那么将从CS:100开始执行10行代码,并且将显示每一行代码执行后寄存器的变化。

D. 系统如何调用debug查看CPU汇编指令和内存

Debug是DOS(Disk Operating System,磁盘操作系统)、windows提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。

查看更详细的介绍DEBUG网络
一般我们常用到的Debug参数:
r命令查看、修改CPU寄存器的内容;
d命令查看内存中的内容;
e命令改写内存中的内容;
u命令将内存中的机器指令翻译成汇编指令;
t命令执行一条机器指令;
a命令以汇编指令的格式在内存中写入一条机器指令。
打开界面如下:

将debug.exe拷贝到D盘(某盘根目录),在DOSBOX中输入“mount c D:\”命令(此命令输入后有“Drive C is mounted as local directory d:\”,再输入“c:”回车。然后输入debug,结果如下:
例如输入u可以查看系统的汇编指令,一直输入u会列出系统所有的汇编指令。如下图所示:

E. Debug的U命令

一般第一条指令显示的数字为数据段段地址,如下图所示:

F. 急~汇编语言考卷问题

1.A=-1110111B,[A]反=10001000B,[A]补=10001001B

B=+0110111B,[B]反=00110111B,[B]补=00110111B。

2.18的BCD编码是(00011000)。

3.8086CPU由__总线接口部件______和__执行部件_______两部分组成。

4.循环程序的结构主要由置初值、工作部分和__循环控件变量更新__三个组成部分。

5.调用子程序通常用_call_指令,返回调用程序通常用_ret_指令。

三、简答题

1.8086CPU数据总线和地址总线各是多少?最大的存储空间是多少?

数据总线是16,地址总线为20,最大的存储空间寻址为1M

2、什么是逻辑地址?它由哪两部分组成?8086的物理地址是如何形成的?

逻辑地址是将存储器分成若干个段之后而出现的一种地址形式,它由段地址和偏移地

址组成,物理地址是将逻辑地址中的段地址左移4个二进制位,再加上偏移地址而形成的.

3.有两个16位的字31DAH和5E7FH,它们在8086系统存储器中的地址分别为00130H和

00134H,画出它们的存储示意图。

图在下面上传了有

4.简述汇编语言的上机过程包括哪几个步骤?

1.设计程序

2.使用masm命令编译程序,生成扩展名为obj的文件

3.使用link命令连接程序,生成扩展名为exe的可执行文件

4.执行生成的可执行文件

5..简述在DEBUG下的U和D命令功能各是什么?若屏幕显示如下,指出代码段和数据段段

址各为多少?若要查看数据段0100开始的100个数据,如何操作?

-u

0B36:0000B8340BMOVAX,0B34

0B36:00038ED8MOVDS,AX

0B36:00058A260600MOVAH,[0006]

0B36:0009A00E00MOVAL,[000E]

U命令为反汇编命令,即载入已在汇编命令A下面写好的程序,D命令为显示存储单元的值.

上面显示命令的代码段为0B36,数据段为0B34

查看数据段0100的100个数据命令为D01000163

四、程序分析题(本大题共1小题,共20分)

1.下列程序完成两个字符串的比较,请先阅读程序:

DATASEGMENT

STRING1DB'MOVE.'

STRING2DB'MOVE.'

MESS1DB'MATCH.',13,10,'$'

MESS2DB'NOMATCH!',13,10,'$'

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

MOVES,AX

LEASI,STRING1

LEADI,STRING2

MOVCX,4

REPECMPSB

JZMATCH

LEADX,MESS2

JMPSHORTDISP

MATCH:LEADX,MESS1

DISP:MOVAH,09

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

①将程序填写完整

②解释MOVAH,09

INT21H

这两条指令的意思是输出一个字符串,字符串的入品地址为DS:DX,即要输出的字符串在

DS:DX处,并以'$'为字符串的结束符.

G. 汇编中-u后跟的上:【0000】是什么意思

那个是机器码,也就是这一句汇编指令对应的机器指令,汇编指令只有编译成机器指令cpu才能看的懂,例如mov ax,0770,编译成机器指令后就是B87007

H. 汇编语言 debug里u命令的显示规则

u--------------------从偏移地址100h开始反汇编
u5------------------从偏移地址5h地址开始反汇编
u5 10--------------将偏移地址5H~10H范围内的代码反汇编
u2000:100--------从2000:100地址(段地址:段偏移)开始反汇编

I. debug下如何查看汇编程序结果,是用u命令吗,用u命令具体如何查看

U命令是查看内存单元中的内容的,会显示出机器码和对应的汇编指令
看运行结果的话用T命令,T是单步执行,每次执行一句,并显示各寄存器和标志位的值。
16位汇编学了基础的后就去学32位汇编吧。

J. 汇编语言,怎么在DEBUG下,将上述目标文件调入内存,利用U、D等命令,检查RAM区中的数据

比如汇编结果为a.exe

C:\>debug a.exe
-u 0 ;如果没有发现自己想要查找的语句,继续u命令
...
... mov ax, 1C22 ; 此二句表明,数据段
... mov ds, ax ;地址为1c22:0000
... mov ax, 1d22 ;如果有类似此二句
... mov es, ax ;表明附加段地址为1d22:0000
-d 1c22:0 ;查看数据段数据
-d 1d22:0 ;查看附加段数据

阅读全文

与u命令汇编相关的资料

热点内容
c语言编程软件都有哪些 浏览:155
解压一半可以取消嘛 浏览:119
住宅风水pdf 浏览:238
文件夹rundir什么意思 浏览:971
戴尔电脑如何给硬盘加密 浏览:155
androidn版本特性 浏览:930
算法期中试卷 浏览:939
php连接hbase 浏览:815
服务器的威胁性应该是什么等级 浏览:827
3d打印机的算法原理 浏览:483
腾讯云通信服务器 浏览:891
minecraft最可怕服务器地址 浏览:276
程序员选专业有必要吗 浏览:32
如何重装rpc服务器 浏览:637
程序员必备的app 浏览:167
电动汽车加密币 浏览:962
xp支持多少层文件夹 浏览:650
阿里云服务器防御指标 浏览:895
cc网络编程学习 浏览:461
单片机又叫微控制器对吗 浏览:662